HTTP POST请求正文返回代码400

时间:2016-09-13 15:08:30

标签: c# http-headers http-post httpwebrequest

我正在使用C# 我正在尝试使用以下请求正文发出POST请求:

{"taskId":15, "values" : [{"Key": "myKey","Value":"<Items>
<Item>
    <Item id="17362"/>
</Item>
</Items>"}]}

以下代码:

var postData = "{\"taskId\":15, \"values\" : [{\"Key\": \"myKey\",\"Value\":\"<Items>   <Item>      <Item id=\"17362\"/>    </Item>    </Items>\"}]}"
var data = Encoding.ASCII.GetBytes(postData);//postData is the reqeust body 

request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = data.Length;

using (var stream = request.GetRequestStream())
{
     stream.Write(data, 0, data.Length);
}

var response = (HttpWebResponse)request.GetResponse();

得到以下的执行:

  

远程服务器返回错误:(400)错误请求

我该如何解决?谢谢!

修改 Web方法签名为:MyWebMethod(int taskId, Dictionary<string, object> values)

这两个请求对我有用:

{"taskId":15, "values" : 123 }]}
{"taskId":15, "values" : "123" }]}

我的Web服务器是C#WebService(.asmx)

1 个答案:

答案 0 :(得分:0)

通过将"替换为&quot;来解决问题。

缺点是我需要更改服务器端以再次将&quot;替换为"