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

时间:2012-06-06 12:56:45

标签: .net rest restsharp

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

现在我需要应用LZO或GZIP压缩。这样服务器的负载就会减少。

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

我要做什么。我正在向请求的主体添加对象。什么时候进行压缩?

... Anyhelp

由于

1 个答案:

答案 0 :(得分:3)

自版本102.7以来的RestSharp supports HTTP compression。我不确定这是否仅适用于Windows Phone或所有平台都支持压缩。

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

<强>更新

我刚刚使用Fiddler验证了默认情况下在103.1中启用了HTTP压缩。以下代码返回使用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);

无需添加Accept-Encoding标头。

压缩仅在服务器支持时才有效。否则响应将被解压缩。

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

如果响应被压缩,则Content-Encoding标头将被设置为压缩方法,例如。 gzip的

要以可视方式检查,请打开Fiddler并检查对RestRequest的响应。 “响应”窗格的“变换器”选项卡显示压缩设置。