簡體   English   中英

執行restsharp請求后的HTTP錯誤406

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM