【问题标题】:Windows Phone ASP.NET Web Service CompressionWindows Phone ASP.NET Web 服务压缩
【发布时间】:2012-10-24 06:03:27
【问题描述】:

我正在为 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 内容的 WebRequest。

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

提前致谢!

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

【问题讨论】:

    标签: asp.net windows-phone-7 soap


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 这不是我要解决的问题。 WebRequest 类与 GZIP 一起正常工作。生成的代码根本不使用 WebRequest。它使用了一些在运行时中被烘焙的解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      相关资源
      最近更新 更多