我正在使用 .net core 1.1 上的 RestSharp.NetCore 105.2.3 开发 rest api 客户端。当我发送请求(POST,GET)时,来自服务器的响应未使用gzip编码。当我在 .net 105.2.3(不是核心)上使用 RestSharp 4.5.3 做同样的事情时,它可以正常工作,并且响应使用 gzip 编码。
两个框架上的库尔斯代码相同
internal class Program
{
private static void Main(string[] args)
{
//my test Api supports gzip
var target = "http://10.100.0.92:62872/api/TestZipPost";
var client = new RestClient(target);
var request = new RestRequest(Method.POST);
var response = new RestResponse();
Task.Run(async () => { response = await GetResponseContentAsync(client, request) as RestResponse; }).Wait();
//write response "AAAAAAAAA"
Console.WriteLine(response.Content);
}
public static Task<IRestResponse> GetResponseContentAsync(RestClient theClient, RestRequest theRequest)
{
var tcs = new TaskCompletionSource<IRestResponse>();
theClient.ExecuteAsync(theRequest, response => { tcs.SetResult(response); });
return tcs.Task;
}
}
核心上的请求标头:
POST /api/TestZipPost HTTP/1.1 接受:application/json, application/xml, text/json, text/x-json, text/javascript, text/xml 连接:保持活动状态 内容长度:0 主机:10.100.0.92:62872
.net 4.5.2 上的请求标头
POST /api/TestZipPost HTTP/1.1 接受:application/json, application/xml, text/json, text/x-json, text/javascript, text/xml 用户代理: RestSharp/105.2.3.0 主机: 10.100.0.92:62872 内容长度: 0 接受编码: gzip, deflate 连接: 保持活动状态
是错误还是我做错了什么?如何使用 RestSharop.NetCore 实现 gzip 编码?
安装正确的 RestSharp 包,它支持 .NET Standard,它将工作。RestSharp.Core
不是我们的软件包。
如果您在使用最新版本的 RestSharp 时遇到任何问题 - 请打开 GitHub 问题。