IBM предоставил замечательный обучающий материал о том как получить информацию с WSDL сервиса с устройства на Android
Пример в указанной статье дает ясное представление о том, как работает KSoap библиотека. Но в процессе интеграции приведенного примера я обнаружил, что результат не возвращается так как указано в статье.
Вот исправленный пример:
package android.webservice.client; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapPrimitive; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; import org.ksoap2.serialization.PropertyInfo; import android.widget.TextView; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; public class AndroidWSClient extends Activity { private static final String NAMESPACE = "http://hello_webservice/"; private static String URL = "http://192.168.1.68:7001/HelloWebService/HelloWSService?WSDL"; private static final String METHOD_NAME = "hello"; private static final String SOAP_ACTION = "http://hello_webservice/hello"; private TextView lblResult; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); lblResult = (TextView) findViewById(R.id.result); SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); PropertyInfo propInfo=new PropertyInfo(); propInfo.name="arg0"; propInfo.type=PropertyInfo.STRING_CLASS; request.addProperty(propInfo, "John Smith"); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.setOutputSoapObject(request); HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); try { androidHttpTransport.call(SOAP_ACTION, envelope); SoapObject resultsRequestSOAP = (SoapObject)envelope.bodyIn; lblResult.setText(resultsRequestSOAP.getPropertyAsString("result")); //"result" is the array, which is reported by WebService } catch (Exception e) { } } }