近期在做项目碰见一个很让人头疼的问题,与甲方数据对接时要求提交一个空的post的json值,我使用postDataStr = ""或postDataStr = "{}"均报400错误,请问大神这个提交空的post的json值应如何正确书写?以下为程序代码段供大神参考(勿喷哈):
           postDataStr = "{}";
            HttpWebRequest request7 = (HttpWebRequest)WebRequest.Create("http://10.1.18.35/ngiam-rst/v1/" + target3 + "/" + userId + "/callonApps?requestId=" + requestId + "&authResultId=" + authResultId + "&callbackUrl=null");
            request7.Method = "POST";
            request7.ContentLength = postDataStr.Length;
            request7.ContentType = "application/json;charset=UTF-8";
            request7.CookieContainer = cookie;
   
            Stream myRequestStream7 = request7.GetRequestStream();
            StreamWriter mySteamWriter7 = new StreamWriter(myRequestStream7, Encoding.GetEncoding("gb2312"));
            mySteamWriter7.Write(postDataStr);
            mySteamWriter7.Close();            HttpWebResponse response7 = (HttpWebResponse)request7.GetResponse();
            至此处报400错误,紧急求助中

解决方案 »

  1.   

    Json 应走 utf8 编码,你走的是GB2312 编码。另外与对方确认什么是“空”的 Json?是 {""} 吗?
      

  2.   

    直接问对方呗,空是什么样的需要,给个demo让他
      

  3.   

    楼上大神的方法均试过了,但是确实问题依然存在,其它代码段均正常通过,如果谁有时间的话可以在线帮我修复一下吗,100元,teamview或者QQ远程均可,可以留下你的QQ或者加我QQ:354183134,谢谢!
      

  4.   

    400的话,看看url地址是否正确
      

  5.   

    ContentType是charset=UTF-8,StreamWriter是gb2312?这是什么操作?
      

  6.   

    StreamWriter mySteamWriter7 = new StreamWriter(myRequestStream7, Encoding.GetEncoding("UTF8));