执行restsharp请求后出现HTTP错误406

本文关键字:HTTP 错误 restsharp 请求 执行 | 更新日期: 2023-09-27 18:14:37

我正在尝试使用RestSharp连接到服务器。但我得到了HTTP Error 406 Not acceptable。下面是web服务响应:

{"metaInfo":{"ErrorString":" ","ErrorCode":" ","Result":true},"userModel":
{"UserId":"123qwe","UserName":"aaa","FirstName":"ALi","LastName":"TbT"}}
rest服务实际上是我为测试创建的一个简单的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; }
    }

运行rest请求的代码如下:

var client = new RestClient(Configuration.PortalUri);
var request = new RestRequest(requestUri, HttpMethod.Post);
var asyncHandle = await client.Execute<RegisterResult>(request);

你能告诉我是什么问题吗?我认为头或编码或类似的东西是错误的。我说的对吗?

执行restsharp请求后出现HTTP错误406

此错误特定于程序员创建您正在调用的服务的方式。从c#的角度来看,你的代码没有任何问题,但是服务作者选择的实现服务的方式不像服务调用中的某些东西。你必须参考他们的文档或询问他们的程序员。

下面是http错误406的解释(摘自http://www.checkupdown.com/status/E406.html):

修复406个错误- general

这个错误在Web浏览器中很少发生,因为大多数浏览器将接受从Web服务器返回的任何数据。

如果客户端不是Web浏览器,那么任何人都只能调查通过查看客户端生成的Accept报头来解决问题系统

考虑修改这些头文件:

•Accept:客户端接受的MIME类型。例如,浏览器可能只接受返回类型的数据(HTML文件,GIF文件等)吗知道如何处理。
Accept-Charset:接受的字符集客户端。
Accept-Encoding:接收的数据编码客户端,例如,它理解的文件格式。•接收语言:客户接受的自然语言(英语,德语等)。•Accept-Ranges:客户端是否接受报文的字节范围资源,即资源的一部分。

例如,您可能需要将以下内容添加到请求中:

request.AddHeader("Accept", "application/json");