Har grejjat lite med Androidappar efter att jag styrde upp mina fina bönor som webbservicear på Glassfish. Det finns en skön patchad KSOAP2 implementation för Android så man enkelt kan snacka med sina servicar. Funkar ju onekligen, men jag vet väl inte om jag tycker det är direkt smidigt. Bara för att man kan göra soapanrop betyder ju inte att det är smidigt att använda. Kanske enklare att bara köra RESTful prylar och skippa hela soap-biten. Men så jag kommer ihåg hur det var jag grejjade så bloggar jag koden iaf.
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;
...
private static final String SOAP_ACTION = "getTest";
private static final String METHOD_NAME = "getTest";
private static final String NAMESPACE =
"http://test.danielsundberg.nu/";
private static final String URL =
"http://services.danielsundberg.nu/TestService/TestBean?wsdl";
private Object resultRequestSOAP = null;
...
private void search() {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
//SoapObject
request.addProperty("arg0", imeibox.getText().toString());
SoapSerializationEnvelope envelope =
new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
AndroidHttpTransport androidHttpTransport =
new AndroidHttpTransport(URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
resultRequestSOAP = envelope.getResponse();
SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;
SoapObject result =
(SoapObject) resultsRequestSOAP.getProperty("return");
text.setText("Result: "+result.getProperty("firstResult");
}
}
catch (Exception e) {
text.setText("An error occured while searching '" +
e.getClass() + "'");
}
}
Funkar men är ju inte direkt smidigt, har inte lyckats casta till några typer andra än bastyperna, men jag har väl inte undersökt jättenoga heller. Hur som så är det ju ballt att kunna snacka soap från en androidapp bara sådär. Kanske inte direkt skivat bröd, men väl som en kasse bärs.