通过ksoap2从Web服务获得部分xml响应

时间:2011-09-28 17:03:58

标签: java android ksoap2

我是Android和Java的新手(之前用C#进行开发),我非常绝望。我正在使用kso​​ap2联系.NET Web服务以获取xml数据。我的代码很简单,如果xml很小,它的效果很好:

soapEnvelope.setOutputSoapObject(request);
SoapPrimitive response = (SoapPrimitive) soapEnvelope.getResponse();
String xmlResponse = response.toString();

这是一种获取响应的简单方法,它是一个简单的xml字符串。但是当xml很大时,它会被截断,我想这是因为响应保存在内存中。我读了其他一些有这个问题的人,但我没有找到真正帮助我的解决方案;可能我错过了管理这个问题的必要知识,这可以通过在Eclipse上导航变量这一事实得到证实我发现数据完全存在,我只是不知道如何达到它...有人可以帮我吗?我怎样才能得到答案中缺失的部分?我需要在本地保存响应吗?需要循环一个InputStream吗?求助...

2 个答案:

答案 0 :(得分:1)

在调试器窗口中,Eclipse不会显示所有数组元素。如果您在扩展阵列时能够看到它们,那么它们就可供您的程序使用。

如果你怀疑是大响应,SAX是解析它的正确方法

编辑: 正如Manfred解释in this answerresponse.toString()是一个坏主意,因为KSoap已经完成了解析。

答案 1 :(得分:1)

您应该使用信封的getResponse方法并解析SoapObject树以满足您的需要。使用bodyIn并使用SAX解析它会添加第二个解析..如果你这样做,你也可以不使用kso​​ap2。