android post gzip

时间:2012-09-21 04:04:13

标签: android wcf gzip

尝试在Android项目上实施gzip以减少客户端数据费用。所有设备都连接到WCF Web服务,IIS现在正按预期将压缩数据发送回设备。现在我需要弄清楚如何回发在Android设备上修改的gzip压缩xml数据。 设备代码如下

     httpsURLConnection.setDoInput(true);
     httpsURLConnection.setDoOutput(true);
     httpsURLConnection.setConnectTimeout(TIMEOUT);
     httpsURLConnection.setReadTimeout(TIMEOUT);
     httpsURLConnection.setRequestMethod("POST");
     httpsURLConnection.setRequestProperty("Content-Type", "application/xml");
     httpsURLConnection.setRequestProperty("Content-Encoding", "gzip);
     httpsURLConnection.connect();

     GZIPOutputStream gzipOutputStream = new GZIPOutputStream(new BufferedOutputStream((httpsURLConnection.getOutputStream())));
     gzipOutputStream.write(_xmlText.getBytes());
     gzipOutputStream.flush();
     gzipOutputStream.finish();
     gzipOutputStream.close();

在Web服务器上运行Wireshark会显示gzip数据包并对其进行解压缩以显示设备中的正确数据。 问题是WCF Web服务似乎无法识别数据 - 错误是XmlException - 根级别的数据无效。第1行,第1位。 这让我觉得数据仍然是压缩的,WCF无法处理gzip - 我似乎记得以前读过的。那么我是否需要在.net中创建一个消息解码器来处理gzip压缩?这有希望在.net 4.5中解决吗?

对这些问题的任何帮助表示赞赏。

0 个答案:

没有答案