使用以下代码调用soap webservice:
SoapObject request = new SoapObject(Constants.NAMESPACE, METHOD_NAME);
AppLog.logString(TAG+"Property info");
PropertyInfo proInfo = new PropertyInfo();
proInfo.setName("strInputData");
proInfo.setValue(jsonValue);
proInfo.setType(String.class);
request.addProperty(proInfo);
AppLog.logString(TAG+"envelope");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
envelope.dotNet = true;
AppLog.logString(TAG+"HttpTransportSE");
HttpTransportSE androidHttpTransport = new HttpTransportSE(Constants.URL, 30000);
androidHttpTransport.debug = true;
try {
AppLog.logString(TAG+"call");
androidHttpTransport.call(Constants.NAMESPACE+METHOD_NAME, envelope);
AppLog.logString(TAG+"call1");
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
AppLog.logString(TAG+"Responce: "+response.toString());
result=response.toString();
} catch (Exception e){
e.printStackTrace();
}
调用soap webservice
时,通常会出现超时异常01-06 17:41:50.722: W/System.err(11832): SoapFault - faultcode: 'soap:Server' faultstring: 'Server was unable to process request. ---> Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.' faultactor: 'null' detail: org.kxml2.kdom.Node@41482960
01-06 17:41:50.722: W/System.err(11832): at org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:141)
01-06 17:41:50.730: W/System.err(11832): at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:140)
01-06 17:41:50.730: W/System.err(11832): at org.ksoap2.transport.Transport.parseResponse(Transport.java:100)
01-06 17:41:50.730: W/System.err(11832): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:214)
01-06 17:41:50.730: W/System.err(11832): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:96)
01-06 17:41:50.730: W/System.err(11832): at com.accusol.accuerp.utility.Utility.setDataFromWebServiceSOAP(Utility.java:189)
01-06 17:41:50.730: W/System.err(11832): at com.accusol.accuerp.ui.MyCustomerDetailViewActivity$FragmentOrder$HttpAsyncTaskPOST.doInBackground(MyCustomerDetailViewActivity.java:359)
01-06 17:41:50.730: W/System.err(11832): at com.accusol.accuerp.ui.MyCustomerDetailViewActivity$FragmentOrder$HttpAsyncTaskPOST.doInBackground(MyCustomerDetailViewActivity.java:1)
01-06 17:41:50.730: W/System.err(11832): at android.os.AsyncTask$2.call(AsyncTask.java:264)
01-06 17:41:50.730: W/System.err(11832): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
01-06 17:41:50.730: W/System.err(11832): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
01-06 17:41:50.738: W/System.err(11832): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
01-06 17:41:50.738: W/System.err(11832): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
01-06 17:41:50.738: W/System.err(11832): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
01-06 17:41:50.738: W/System.err(11832): at java.lang.Thread.run(Thread.java:856)