我的 Android 应用程序遇到了一个非常奇怪的问题。我从服务器接收 XML 文件并根据 XML 内容执行操作。
它几乎适用于每个网络,例如美国的 AT&T、Verizon、印度的 airtel、Vodafone 等。但它不适用于美国的 sprint 网络。
当我尝试查找 XML 内容时,我得到的是一些字节码或 unicode,而不是纯 XML 文件。我查找了更多信息,发现其他人在 sprint evdeo 上也遇到过这个问题。人们说关闭字节移动优化。
我无法关闭移动字节优化。如果我切换到 Wi-Fi 网络,它会正确接收文件。问题仅发生在 sprint 蜂窝网络上。
最佳答案
感谢大家回答我的问题,几天前我已经解决了。
实际上,sprint 使用 gzip 编码压缩任何 xml 文件。我尝试使用以下方式解压缩 Http 响应,它就像魅力一样。大多数网络提供压缩音频/视频数据,但 sprint 正在处理通过网络发送的所有数据。
我使用以下代码解决了我的问题。
HttpEntity httpEntity = reponseData.getEntity();
InputStream res = AndroidHttpClient.getUngzippedContent(httpEntity);
linputSourceFromServerResponse = new InputSource(res);
Document doc = builder.parse(linputSourceFromServerResponse);
关于android - 接收 XML 文件已损坏(在 sprint 网络上)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19020512/