接收xml文件已损坏(在sprint网络上)?

时间:2013-09-26 06:03:04

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

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

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

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

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

非常感谢任何帮助或任何指针。提前致谢

3 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:1)

检查输出是否只是一个gzip压缩包。 使用GZIPInputStream读取普通xml。

答案 2 :(得分:0)

乍一看,看起来像编码问题.. 如果可能,您可以发送电子邮件到sprint网络并解释您的问题,也许他们会给您答案或逻辑解释。