我使用KSOAP访问我的应用程序的Web服务。我使用SoapObject来构建请求,我得到了一个奇怪的响应(在这种情况下,奇怪的意思不是XML)。
我是KSOAP的新手,我需要在KSOAP上构建的现有项目中添加一些更改,因此避免使用它不是一种选择。代码很简单,有效,但我无法解析响应。
用于此的代码是:
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("PersonalID", "032676025");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
Log.i("Webservice Output", response.toString());
return response.toString();
} catch (Exception e) {
e.printStackTrace();
}
这里的问题是我找不到来自我的webservice的XML作为响应。我需要得到它并自己解析它。
问题是:如何从XML响应上方代码中使用的对象(作为XML)中获取?
谢谢。
答案 0 :(得分:3)
我找到了解决方案: 在进行WS调用之前设置 androidHttpTransport.debug = true; 。
在此之后,您可以像这样访问请求和响应:
String requestDump = androidHttpTransport.requestDump;
String responseDump = androidHttpTransport.responseDump;
Log.i("", "Requeste: " + requestDump);
Log.i("", "Response: " + responseDump);