我收到了错误的StatusCode:400,ReasonPhrase:'Bad Request',代码如下。
string url = "http://1.1.1.1";
Object cu = new Object ();
HttpClient client = new HttpClient { BaseAddress = new Uri(url) };
var json = JsonConvert.SerializeObject(cu);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent(JsonConvert.SerializeObject(cu), Encoding.UTF8, "application/json");
var response = client.PostAsJsonAsync("/api", content); //changed content from cu
var status = response.Result;
我注意到我的状态代码的Content-Type:仍然是text / html而不是application / json。
请协助。
注意:评论中提及的编辑代码。 此外,我能够通过以下jquery消费服务。但我需要C#代码才能工作。
$.ajax({
cache: false,
type: "POST",
async: true,
url: RequestUrl,
data: JSON.stringify(jData),
contentType: "application/json",
dataType: "json",
success: function (result) {
alert(result.ResultCode);
},
error: function (result) {
alert('error' + result.responseText);
}
});
答案 0 :(得分:0)
我刚试过你的代码,它实际上设置了正确的标题:
Accept: application/json
Content-Type: application/json; charset=utf-8
所以你的JSON可能有问题。您应该阅读端点的文档。在这种情况下使用Fiddler(优秀的HTTP客户端)也非常有用。
答案 1 :(得分:0)
您确定自己符合API的预期吗?您正在发送的JSON有效负载是:
{"Headers":[{"Key":"Content-Type","Value":["application/json; charset=utf-8"]}]}
发送有效载荷似乎有点奇怪。
我猜测你根本不符合API。它可能希望您发送任何内容或非常格式化的JSON对象,并且您不发送它想要的内容。因此,它以" Bad Request"因为请求不好(即格式不正确)。查看您要拨打的API的文档,确保您通过了预期的内容。
您确定服务需要响应POST而不是GET吗?