android - 接收 XML 文件已损坏(在 sprint 网络上)?

标签 android xml-parsing xmlhttprequest android-networking cellular-network

我的 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/

相关文章:

android - Admob SDK适配后集成示例

android - 如何在不使用浏览器的情况下在我们的 Android 应用程序中显示网页内容

Java解析XML文档给出 “Content not allowed in prolog”错误

javascript - 我应该使用 XmlHttpRequest POST 发送额外的 header 吗?

javascript - 对文件 : protocol 发出 json/jsonp xhr 请求

javascript - 如何找到加载缓慢的 SAPUI5 应用程序的加载瓶颈

android - 绘制位图时忽略 setDensity/setTargetDensity

android - SOFT_INPUT_ADJUST_RESIZE 从 android 30 开始弃用

c# - 解析几乎格式正确的 XML 片段 : how to skip over multiple XML headers

c# - 强制扩展 XDocument 中的空元素