【问题标题】:Receive xml file is corrupted (on sprint network)?接收 xml 文件已损坏(在 sprint 网络上)?
【发布时间】:2013-09-26 06:03:04
【问题描述】:

我在我的 Android 应用程序中遇到了一个非常奇怪的问题。我从服务器接收xml文件并根据xml内容执行操作。

它几乎适用于每个网络,例如。美国的 AT&T、Verizon、印度的 airtel、vodaphone 和其他公司。但它不适用于美国的 sprint 网络。

当我试图查找 xml 内容时,我得到了一些字节码或 unicode,而不是纯 xml 文件。我查找了更多信息,我发现其他人在 sprint evdeo 上也遇到了这个问题。人们说关闭字节移动优化here

我无法关闭移动字节优化。如果我切换到 wifi 网络,它会正确接收文件。问题仅发生在 sprint 蜂窝网络上。

任何帮助或任何指针将不胜感激。提前致谢

【问题讨论】:

  • 也许您可以添加一些标题来强制关闭此优化。这肯定是特定于网络的,但他们必须避免对流进行处理(例如)。添加一个会欺骗他们的标题就可以了
  • @SherifelKhatib 感谢您的回复,但我已经尝试过了。没有帮助。我更改了内容 mime 类型、字符集类型等,但没有任何效果。
  • 你能把你得到的东西和你期望得到的东西贴出来吗?

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


【解决方案1】:

感谢大家回复我的问题,几天前我已经解决了。

实际上 sprint 使用 gzip 编码压缩任何 xml 文件。我尝试使用以下方法解压缩 Http 响应,它就像魅力一样。大多数网络都提供压缩音频/视频数据,但 sprint 正在为通过网络发送的所有数据进行。

我使用以下代码解决了我的问题。

HttpEntity httpEntity = reponseData.getEntity();
InputStream res = AndroidHttpClient.getUngzippedContent(httpEntity);
linputSourceFromServerResponse = new InputSource(res);
Document doc = builder.parse(linputSourceFromServerResponse);

【讨论】:

    【解决方案2】:

    检查输出是否只是压缩的 xml。 使用GZIPInputStream 读取纯xml。

    【讨论】:

      【解决方案3】:

      乍一看,似乎是编码问题.. 如果可能的话,您可以向 sprint network 发送电子邮件并解释您的问题,也许他们会给您答案或合乎逻辑的解释。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-24
        • 2018-06-21
        • 2023-03-20
        • 2011-10-23
        • 2019-11-29
        相关资源
        最近更新 更多