我按照网上代码写出来的调用WebService的程序,总是返回'服务器无法处理请求。-->未将对象应用设置到对象实例'
我的代码如下:
public void other() {
// 命名空间
String nameSpace = " www.webxml.com.cn/";
// 调用的方法名称
String methodName = "getSupportCity";
// EndPoint
String endPoint = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx";
// SOAP Action
String soapAction = "http://WebXml.com.cn/getSupportCity";
HttpTransportSE transport = new HttpTransportSE(endPoint);
// 指定WebService的命名空间和调用的方法名
SoapObject rpc = new SoapObject(nameSpace, methodName);
rpc.addProperty("byProvinceName", "重庆");
// 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);
// 设置是否调用的是dotNet开发的WebService
envelope.dotNet = true;
transport.debug = true;
// 等价于envelope.bodyOut = rpc;
envelope.setOutputSoapObject(rpc);
try {
// 调用WebService
transport.call(soapAction, envelope);
} catch (Exception e) {
e.printStackTrace();
}
// 获取返回的数据
Object object = envelope.bodyIn;
if(object==null){
Log.i(TAG, "return object is null!");
return;
}
if(object instanceof SoapFault){
Log.i(TAG, "SoapFault refult is :"+ object.toString());
return;
}else if(object instanceof SoapObject){
// 获取返回的结果
Log.i(TAG, "SoapObject refult is :"+ object.toString());
}
}
----------------------------------------------------
返回的logcat打印如下:
01-22 16:43:34.966: I/MainActivity(1898): SoapFault refult is :SoapFault - faultcode: 'soap:Server' faultstring: '服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。' faultactor: 'null' detail: org.kxml2.kdom.Node@4228be08
我调用了很多webservice接口,结果都是返回这个,应该不是服务器的问题,大神求指教!!