[英]HTTP Error 406 after execting a restsharp request
我正在嘗試使用RestSharp連接到服務器。 但我收到HTTP Error 406 Not acceptable
。 這是Web服務響應:
{"metaInfo":{"ErrorString":" ","ErrorCode":" ","Result":true},"userModel":
{"UserId":"123qwe","UserName":"aaa","FirstName":"ALi","LastName":"TbT"}}
其余的服務實際上是我為測試而創建的一個簡單的php文件:
<?php
$a = array("metaInfo"=>array("ErrorString"=>" ","ErrorCode"=>" ","Result"=>true),"userModel"=>array("UserId"=>"123qwe","UserName"=>"aaa","FirstName"=>"ALi","LastName"=>"TbT"));
echo json_encode($a);
?>
這是RegisterResult和MetaInfo類:
public class RegisterResult
{
public MetaInfo metaInfo { get; set; }
}
public class MetaInfo
{
public string ErrorString { get; set; }
public string ErrorCode { get; set; }
public bool Result { get; set; }
}
運行其余請求的代碼如下:
var client = new RestClient(Configuration.PortalUri);
var request = new RestRequest(requestUri, HttpMethod.Post);
var asyncHandle = await client.Execute<RegisterResult>(request);
你能告訴我問題是什么嗎? 我認為標頭或編碼或類似的東西有問題。 我對嗎?
此錯誤特定於程序員創建正在調用的服務的方式。 從C#角度來看,您的代碼沒有錯,但是服務作者選擇實現其服務的方式與服務調用中的內容不一樣。 您將必須參考他們的文檔或咨詢他們的一名程序員。
這是http錯誤406的解釋(取自http://www.checkupdown.com/status/E406.html ):
修復406錯誤-常規
在Web瀏覽器中很少會發生此錯誤,因為大多數瀏覽器將接受從Web服務器返回的任何數據。
如果客戶端不是Web瀏覽器,那么任何人都只能通過查看客戶端系統生成的Accept標頭來調查問題。
考慮以下標頭進行修改:
•接受:客戶端接受的MIME類型。 例如,瀏覽器只接受其知道如何處理的數據的后退類型(HTML文件,GIF文件等)。
•Accept-Charset:客戶接受的字符集。
•Accept-Encoding:客戶端接受的數據編碼,例如它可以理解的文件格式。 •接受語言:客戶接受的自然語言(英語,德語等)。 •接受范圍:客戶端是否接受資源中的字節范圍,即資源的一部分。
例如,您可能需要將此添加到您的請求中:
request.AddHeader("Accept", "application/json");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.