提问者:小点点

RestSharp Core gzip 不工作


我正在使用 .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 编码?


共1个答案

匿名用户

安装正确的 RestSharp 包,它支持 .NET Standard,它将工作。RestSharp.Core不是我们的软件包。

如果您在使用最新版本的 RestSharp 时遇到任何问题 - 请打开 GitHub 问题。