在我的应用程序中,我正在访问本地系统中的一些Web服务。当我从我的PC调用这些服务时,这些所有工作的腹肌很好但是当这些服务从另一个系统调用时。在通话中我收到错误
“org.xmlpull.v1.XmlPullParserException: 预期:START_TAG“。
这是我的代码:
public String getAccountsNames(int billId){
String value = new String();
System.out.println("Inside getAccountsDetails method...........");
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("billId", billId);
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet=true;
soapEnvelope.setOutputSoapObject(request);
AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL);
try
{
androidHttpTransport.call(SOAP_ACTION, soapEnvelope);
SoapPrimitive resultString = (SoapPrimitive)soapEnvelope.getResponse();
value = resultString.toString();
System.out.println("This getAccountsNames xmls is : "+xml);
} catch (Exception e) {
e.printStackTrace ();
}
return value;
}
我也通过设置SoapEnvelope.VER11,VER12,VER10来检查。但每次问题都是一样的。
请建议。感谢。
答案 0 :(得分:0)
当您在其他系统上时,可能没有获得XML响应。你可以通过这种方式看到你得到的东西:
androidHttpTransport.debug = true;
// ...
// execute the request
// ...
androidHttpTransport.responseDump; // <-- a string containing server response
另外:不是这可能是问题,但不推荐使用AndroidHttpTransport
,您应该使用HttpTransportSE
。
答案 1 :(得分:0)
AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL);
我遇到了类似的问题,这是因为我意外地插入了我的NAMESPACE地址而不是URL,这是不同的。当我把它切换回来时,它起作用了。
作为补充建议,如果您没有看到参数正确传递,请尝试排除以下行:
soapEnvelope.dotNet = TRUE;
对我来说,我有一个布尔值,它一直被传递为false,直到我注释掉该行。