Ciao a tutti, sò che questo argomento è stato già trattato però dopo tnt giorni che ho sbattuto la testa ho deciso di aprire il thread.
ho pubblicato online su Google App Engine il seguente Web Service:
http://marcoapplicazione.appspot.com...eeService.wsdl
dove ci sono 3 operazioni:
- createEmployee
- getEmployee
- pingApplication
Dove il primo servizio prende dei parametri dell'Employee e risponde con un booleano, il secondo non lo prendiamo in considerazione e il terzo ha un parametro nullabile e risponde sempre TRUE.
Premetto che ho provato i servizi da SoapUI e da Visual Studio e funzionano!
Volevo provare a fare un applicazione su Android che invoca uno di questi servizi, ad esempio ho scritto questa classe velocemente:
codice:
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
public class Test {
private static final String SOAP_ACTION = "pingApplicationRequest";
private static final String METHOD_NAME = "pingApplicationRequest";
private static final String NAMESPACE = "http://marcoapplicazione.appspot.com/";
private static final String URL = "http://marcoapplicazione.appspot.com:80/soap/";
public void test() {
try {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
androidHttpTransport.call(SOAP_ACTION, envelope);
Object result = envelope.getResponse();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
Di proposito non ho gestito la risposta, perchè quando faccio il call mi cattura la seguente eccezione:
codice:
expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <html>@2:7 in java.io.InputStreamReader@e89b94)
Dalle ore perse a smattetare sul codice e a cercare su google, ho notato che il problema è l'URL, perchè provandone un altro non dà questa eccezione.
Avete qualche idea da suggerirmi????
PS se volete provare x conto vostro non ci sono problema, il servizio è pubblico