C#json POST请求400错误

C#json POST请求400错误,c#,javascriptserializer,C#,Javascriptserializer,正在尝试使json post请求正常工作。根据错误响应,错误似乎与请求主体有关。我似乎想不出原因。如果我通过POSTMAN发布相同的请求正文字符串,我会得到一个成功的响应 var bodyData = new { id = "1234567", eventType = "create", userId = "account-70540" } var js = new JavaScriptSerializer(); string reqBody = js.Serialize(bodyData);

正在尝试使json post请求正常工作。根据错误响应,错误似乎与请求主体有关。我似乎想不出原因。如果我通过POSTMAN发布相同的请求正文字符串,我会得到一个成功的响应

var bodyData = new
{
id = "1234567",
eventType = "create",
userId = "account-70540"
}
var js = new JavaScriptSerializer();
string reqBody = js.Serialize(bodyData);
在处理请求的部分中:

HttpWebRequest request = WebRequest.Create(reqUrl) as HttpWebRequest;
request.Method = "POST";                
request.ContentType = "application/json";
request.Headers.Set("x-tracking-id", "12345");
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
最后一行触发异常,我得到一个400错误请求。解码json时出现意外错误:消息实体不能为空

如果我复制字符串reqBody并将其用作Postman中的body,它就会工作。
你能帮我做点什么吗?

你可以试试这样的东西:

public static string PostJsonSync(string url, object obj) {     
    var httpWebRequest         = (HttpWebRequest)WebRequest.Create(url);
    httpWebRequest.ContentType = "application/json";
    httpWebRequest.Method      = "POST";

    using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) {
        var json = JsonConvert.SerializeObject(obj);
        streamWriter.Write(json);
        streamWriter.Flush();
        streamWriter.Close();
    }

    var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
    using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) {
        var result = streamReader.ReadToEnd();

        return result;
    }
}

*注意:它使用json.net进行序列化。

我看不出您在哪里将reqBody附加到请求对象…@MindingData-非常感谢。我如此专注于请求主体,以至于我没有看到不将主体附加到请求上的基本错误。你真棒!非常感谢你的片段。非常感谢!