在我的应用程序中,我正在访问一些在我的本地系统中的Web服务。当我从我的PC调用这些服务时,这些服务都工作正常,但当这些服务从另一个系统调用时,我收到了错误
“出现异常错误:必须是: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;
}
我也检查了设置soapenvelopeiderver11,VER12,VER10。但问题是相同的每一次。
请建议。谢谢。
2条答案
按热度按时间ehxuflar1#
在其他系统上可能没有得到XML响应。
另外:不是说这可能是问题所在,而是
AndroidHttpTransport
已过时,您应该使用HttpTransportSE
。irtuqstp2#
安卓Http传输安卓Http传输=新的安卓Http传输(URL);
我也遇到过类似的问题,那是因为我不小心插入了我的名字空间地址而不是网址,这是不同的。当我把它换回来时,它起作用了。
作为补充建议,如果您没有看到参数被正确传递,请尝试排除以下行:
如果是,则将其设置为true;
对我来说,我有一个布尔值,它一直被当作false传递,直到我注解掉那一行。