Ich versuche, einen asmx-Webservice von einer Android-App aus aufzurufen. Ich habe heute gerade mit der Android-Entwicklung angefangen. Ich bin verschiedenen Lösungen gefolgt, die ich im Netz und hier gefunden habe, und es scheint schwieriger zu sein als erwartet. Ich habe verschiedene Lösungen ausprobiert und es scheint, dass die Verwendung von KSoap2 der einfachste Weg ist, um dies umzusetzen, nun ja, wenn ich es zum Laufen bringen könnte.
Ich habe den folgenden Code, der bis zu einem bestimmten Punkt funktioniert:
private class CallWebService extends AsyncTask {
private static final String SOAP_ACTION = "http://tempuri.org/GetUser";
private static final String METHOD_NAME = "GetUser";
private static final String NAMESPACE = "http://tempuri.org/";
private static final String URL = "http://160.10.1.79:59315/Service1.asmx";
TextView tv;
@Override
protected Void doInBackground(Void... params) {
tv=(TextView)findViewById(R.id.txtMessage);
try {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
Object result = (Object)envelope.getResponse();
tv.setText(result.toString());
}
catch (Exception e) {
tv.setText(e.getMessage());
}
return null;
}
}
Es scheint bei der Zeile androidHttpTransport.call(SOAP_ACTION, envelope);
zu hängen. Irgendwelche Ideen warum? Ist dies der richtige Ansatz? Sollte ich in eine andere Richtung schauen?