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

标签 .net rest restsharp

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

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

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

我必须做的。我正在向请求正文添加对象。什么时候执行压缩?

任何帮助...

谢谢

最佳答案

RestSharp supports HTTP compression从 102.7 版开始。我不确定这是否仅适用于 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);

无需添加 Accept-Encoding header 。

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

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

如果响应被压缩,则 Content-Encoding header 将设置为压缩方法,例如。压缩包。

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

关于.net - RestSharp 压缩请求,同时对服务器进行休息调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10914672/

相关文章:

c# - Endpoint 与 Windows 沉浸式项目版本 1 不兼容

.net - ProviderManifestToken 2008 或 2012

c# - 从 .NET 应用程序中读取和解码存储在图像或 PDF 文件中的 PDF-417 条码

.net - 系统错误 5 启动 .NET 服务时访问被拒绝

java - 休息服务不接受给定的帖子,尽管它被注释为多部分

带有 RestSharp 的 XML POST

rest - 路由传入请求

ruby - 如何在 ruby​​ 中设置 header ['content-type' ] ='application/json'

c# - 使用 RestSharp 返回一个简单的 Guid

c# - Azure ACS 使用 RestSharp 获取 token 415 错误