2010-01-19 87 views
0

我有一个返回XML的.NET Web服务,我想在发送它之前压缩它。压缩Web服务的结果

有一对夫妇的方式,我可以做到这一点,但我宁愿没有这样做的代码。

我可以设置IIS来gzip由我的WebService返回的所有内容吗?它没有被浏览器调用。

另一个问题是,如果此Web服务正在被Java客户端使用 - 是否会影响任何内容?

我想象的客户端代理仍然需要解压,但如果我用gzip不应该有任何问题 - 这是一个通用协议,对不对?

回答

3

标准的方式做这种事情是用gzip通过HTTP压缩,因为它是直接由协议的支持。只要你的客户支持,那么你应该很好去。

如果您正在使用更多的基本工具,从头开始编写客户端,您可能需要添加处理这个自己:就是一个很好的例子显示here (python)

我希望很多SOAP客户端库都有内置的支持,但您必须尝试一下以确保:如果他们依靠较低级别的HTTP库来完成他们的工作,它应该只是工作。

+0

这是我所期望的 - 但在客户端会发生什么?他们是否必须编写代码来显式解压缩请求,或者生成的SOAP代理是否会为他们执行此操作?例如根据这个链接,他们需要编写代码 - http://janetandkevin.com/blog/articles/189.aspx – Duncan 2010-01-19 16:46:57

+0

正如我所说的,取决于客户端:一些客户端将使用低级别的HTTP库,将读取标题并做正确的事情。其他人可能不会,在这种情况下,你可能需要做一些额外的工作。无论如何,您始终可以让您的服务器端代码查看来自客户端的accept头,以确定它是否支持gzip。 – jkp 2010-01-19 16:48:50

+0

参见§14.3接受编码:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html – trashgod 2010-01-19 18:57:35