我的Android应用程序中有一个非常奇怪的问题。我从服务器接收xml文件,并根据xml内容执行操作。
它正在几乎每个网络上工作,例如。美国的AT& T,Verizon,印度的airtel,vodaphone和其他公司。但它不适用于sprint网络美国。
当我试图找到xml内容时,我得到一些字节码或unicode而不是普通的xml文件。我查找了更多信息,我发现其他人也在sprint evdeo上遇到过这个问题。人们说关闭字节移动优化here
我无法关闭移动字节优化。如果我切换到wifi网络,它会正确接收文件。问题仅发生在sprint蜂窝网络上。
非常感谢任何帮助或任何指针。提前致谢
答案 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网络并解释您的问题,也许他们会给您答案或逻辑解释。