4

我正在为 Windows Phone 和 iOS 开发一个应用程序,它需要使用 ASP.NET Web 服务(SOAP,我开发的)。由于 XML 固有的冗长,我通过 Web 服务下载的数据量相对较大。我想使用 IIS 的 ISAPI 压缩模块来压缩服务器对我的 SOAP 调用的响应。在 iOS 上,我使用的是 wsdl2objc,效果很好。标Accept-Encoding: gzip,deflate头出现在来自 iOS/wsdl2objc 的调用中。IIS 正确压缩了响应,效果很好。

在 Windows Phone 上,我使用自动生成的 SOAP 包装器,并将 Web 服务添加为服务参考。这也(功能上)工作得很好。该应用程序正常运行,但生成的代码发送的标头是Accept-Encoding: identity. 我通过管道听说生成的代码使用了支持 gzip 内容的 WebRequests。

是否有一种可接受的方式可以Accept-Encoding: gzip在电话端添加标头,或者从服务器返回压缩Content-Encoding: gzip响应?

提前致谢!

注意:我使用的是 ASP.NET Web 服务,而不是 ASP.NET WCF 服务。

4

2 回答 2

0

事实证明,嵌入 WP7 的 SOAP 实现的底层 HTTP 请求魔术对 GZIP/DEFLATE 响应(或请求,就此而言)压缩的支持正好为 0。我将最终推出我自己的 SOAP 类生成器解决方案,它使用WebRequest类来完成它。

于 2012-11-20T06:03:30.967 回答
-1

http://www.sharpgis.net/post/2011/08/28/GZIP-Compressed-Web-Requests-in-WP7-Take-2.aspx

具有包含 GZip 支持的 WebRequest 和 WebResponse。他们的最新更新说您可以将其注册为与任何 WebRequest 一起使用,但我自己没有尝试过该部分。因此,如果代码确实使用了引擎盖下的标准 Web 请求,那么您应该很高兴。

于 2012-11-15T22:43:42.497 回答