从Web服务获取不完整的xml数据

问题描述:

我正在向以XML格式返回数据的Web服务发送POST请求。当我通过浏览器调用Web服务时,我可以看到完整的XML文件。然而,当我从我的android应用程序(模拟器)调用Web服务时,我只能获得部分XML数据?从Web服务获取不完整的xml数据

发送的XML文件的大小约为14500字节。我首先将响应存储在一个字节数组中,其大小由我使用getContentLength()函数计算得出。此方法返回正确的响应大小。

但是,我的InputStreamReader读取到字节数组的大约6350字节的实际数据。字节数组的其余部分只包含零。

我试着在网上无处不在,但到目前为止我还没有遇到过解决方案。是的chunking是一种选择,但由于我没有访问Web服务代码,我无法实现该选项。

真的很感谢,如果有人能指导我这里!

+0

你可以发布我们一些代码,重要的是要知道你是否使用HttpClient或URLConnection以及哪个版本的你正在瞄准的android API,因为Android文档承认pre-honeycomb前的URL连接代码中存在错误。 – Elemental 2012-02-20 06:25:39

+0

@Elemental不幸的是我现在没有访问代码....我会尽快分享。我正在使用HttpClient,我的目标是Android 2.2平台。谢谢! – user1122549 2012-02-20 07:12:47

我不明白为什么你需要使用InputStreamReader(如果你不小心的话可能表现得很差)读取Web服务数据(在你的情况下它只有14.5kb左右)。只需使用HttpURLConnection,连接到你的ws,它会照顾你的连接和响应connection.getResponseMessage();

+0

感谢您的建议。我使用HttpURLConnection,但问题仍然存在。尽管srevice返回的字节数是16500,但BufferedReader.readLine()方法只能读取多达6851个字节。你能提出什么可能是错误的吗? – user1122549 2012-02-24 18:56:35

+0

是的HttpUrlConnection选项为我工作!谢谢Anh Tuan! – user1122549 2012-03-07 10:23:59