[英]Getting Bad Request error while updating email category with Office 365 API and HttpClient in C#
[英]getting 'Bad Request' while consuming json webservice using httpclient C#
我的狀態代碼越來越糟:400,原因短語:“錯誤請求”,顯示以下代碼。
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);
}
});
我剛剛嘗試了您的代碼,它實際上設置了正確的標頭:
Accept: application/json
Content-Type: application/json; charset=utf-8
因此,您的JSON可能有問題。 您應該閱讀端點的文檔。 在這種情況下使用Fiddler (出色的HTTP客戶端)也非常有幫助。
您確定您符合API的期望嗎? 您要發送的JSON有效負載為:
{"Headers":[{"Key":"Content-Type","Value":["application/json; charset=utf-8"]}]}
作為有效載荷發送似乎有點奇怪。
我猜測您根本不符合API。 它可能希望您不發送任何內容,或者不發送任何格式非常特殊的JSON對象,而不發送所需的內容。 結果,由於請求不正確(即格式不正確),它以“錯誤請求”響應。 查看您正在調用的API的文檔,並確保您傳遞了期望的API。
您確定服務需要響應POST而不是GET嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.