RestSharp 压缩请求,同时对服务器进行 rest 调用



我正在我的C#客户端中使用用java编写的rest api。我正在向服务器输送大量数据,并且我正在使用RestSharp.dll以进行休息调用。我要做的是构造一个对象,并直接将其添加到 RestSharp 请求对象的主体中,并为其提及 .netserializer。因此,它将自动序列化并发布它。一切都很好。

现在我需要应用 LZO 或 GZIP 压缩。因此,该服务器的负载将减少。

我知道如何实现这两种压缩技术。但是如何使用 RestSharp 请求对象实现它呢?

我必须做什么。我正在将对象添加到请求正文中。何时执行压缩?

任何帮助...

谢谢

RestSharp 从 102.7 版本开始支持 HTTP 压缩。我不确定这是否仅适用于Windows Phone或所有平台都支持压缩。

最常见的算法是GZip和Deflate,尽管实际的压缩级别通常由服务器控制。

更新:

我刚刚使用 Fiddler 验证了 HTTP 压缩在 103.1 中默认启用。以下代码返回使用 GZip 编码的页面:

        var target = "http://msdn.microsoft.com/";
        var client=new RestClient(target);
        var request = new RestRequest("",Method.GET);
        var response = client.Execute(request);
        Console.WriteLine(response.Content);

无需添加接受编码标头。

仅当服务器支持压缩时,压缩才会起作用。否则,响应将被解压缩。

这意味着Java服务也必须启用HTTP压缩。

如果响应被压缩,则内容编码标头将设置为压缩方法,例如。

要直观地检查这一点,请打开 Fiddler 并检查对 RestRequest 的响应。"响应"窗格的"转换器"选项卡显示压缩设置。

最新更新