我在C#中有這個Windows Phone 8項目,我正在使用RestSharp 104.4.0向服務器發出請求。服務器只接受「接受」類型的「application/json」。我的代碼調用請求:爲什麼是RestSharp AddHeader(「Accept」,「application/json」); =到項目清單?
var client = new RestClient(_jsonBaseUrl + someURL)
{
Authenticator = new HttpBasicAuthenticator(someUsername, somePassword)
};
var request = new RestRequest(Method.POST);
UTF8Encoding utf8 = new UTF8Encoding();
byte[] bytes = utf8.GetBytes(json);
json = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
request.RequestFormat = DataFormat.Json;
request.AddHeader("Accept", "application/json");
request.AddBody(json);
request.Parameters.Clear();
request.AddParameter("application/json", json, ParameterType.RequestBody);
client.ExecuteAsync<UserAccount>(request, response =>
{
if (response.ResponseStatus == ResponseStatus.Error)
{
failure(response.ErrorMessage);
}
else
{
success("done");
}
});
「json」變量是一個JSON字符串。你可以看到我的接受類型設置爲AddHeader(「Accept」,「application/json」);但由於一些有線的原因,服務器接收這種接受類型: 「接受」:「application/json,application/xml,text/json,text/x-json,text/javascript,text/xml」
什麼我必須這樣做,以確保服務器獲得的唯一接受類型是「Accept」:「application/json」?
任何形式的幫助將不勝感激。
不知道爲什麼我找不到那與我所有的谷歌搜索:)但謝謝生病給它一個鏡頭。 – user2408952
它實際上是第一個結果:D –
它的工作原理,RestClient.ClearHandlers();然後RestClient.AddHandler(「application/json」,新的JsonDeserializer());然後刪除request.AddHeader(「Accept」,「application/json」); – user2408952