2012-10-24 96 views
4

我正在为Windows Phone和iOS开发一个应用程序,它需要使用ASP.NET Web服务(SOAP,由我开发)。由于XML固有的冗长性,我通过Web服务下载的数据量相对较大。我想使用IIS的ISAPI压缩模块来压缩服务器对我的SOAP调用的响应。在iOS上,我正在使用wsdl2objc,这非常棒。来自iOS/wsdl2objc的呼叫存在Accept-Encoding: gzip,deflate标头。 IIS正确地压缩响应,这可以起到保护作用。Windows Phone ASP.NET Web服务压缩

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

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

在此先感谢!

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

回答

0

发现底层HTTP请求魔法烘焙到WP7的SOAP实现中,恰好支持GZIP/DEFLATE压缩响应(或请求,就此而言)。我将最终滚动我自己的SOAP类生成器解决方案,它使用WebRequest类来完成它。

-1

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

拥有的WebRequest和WebResponse的是gzip的支持。他们的最新更新说,你可以注册它与任何WebRequest一起工作,但我没有尝试过自己的那部分。所以如果代码确实使用标准的Web请求,你应该很好。

+0

这不是我想解决的问题。 WebRequest类可以与GZIP一起正常工作。生成的代码根本不使用WebRequest。它使用了一些在运行时烘焙的解决方案。 –