我已经看到了如何在 Android 中使用 Ksoap2 的所有可能示例。我能够从相同的代码访问公开可用的 SOAP Web 服务。但是当我尝试使用我的服务团队编写的 SOAP 服务时,我不断得到
“java.IO.exception:HTTP 请求失败:HTTPS 状态:500”基本上调用在 HttpTransportSEObj.call(命名空间+方法名,信封)上失败;
我可以从 iOS 客户端调用相同的服务。
我不知道在这里做什么。
这与命名空间与我的实际网址有何不同有关吗?我不知道。
命名空间:http : //xyz.net/webmethod/mobile,网址: http: //xyz.com/lite/webmethod/mobile.asmx,方法名称:登录
任何帮助是极大的赞赏。
Edit1:我从异常中获得了更多信息,这是响应
soap:ServerServer 无法处理请求。---> 对象引用未设置为对象的实例。
Edit2:在此处添加调用代码
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("email","xyc.com");
request.addProperty("password","Passw@rd1");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request); //prepare request
HttpTransportSE httpTransport = new HttpTransportSE(URL);
httpTransport.debug = true;
Log.i("bodyout", "" + envelope.bodyOut.toString());
try {
httpTransport.call(SOAP_ACTION, envelope); //send request
SoapObject result=(SoapObject)envelope.getResponse(); //get response
if(result != null)
Log.i("Response"," Service response is " + result);
} catch (Exception e) {
Log.e("SOAP_TEST", "========= Request start =========");
Log.e("SOAP_TEST", httpTransport.requestDump);
Log.e("SOAP_TEST", "========== Request end ==========");
Log.e("SOAP_TEST", "========= Response start ========");
Log.e("SOAP_TEST", httpTransport.responseDump);
Log.e("SOAP_TEST", "========== Response end =========");
Log.e("", "error", e);
}
}