2013-05-01 2 views
0

J'essaie d'appeler la méthode getWeather() de cette webservice: http://www.webservicex.com/globalweather.asmx?WSDLAndroid: appeler une méthode simple webservice en utilisant ksoap2

Voici mon code:

public class ServiceCall { 
private static final String NAMESPACE = "http://www.webserviceX.NET"; 
private static final String URL = "http://www.webservicex.com/globalweather.asmx"; 

public String prova(String citta){ 
     final String SOAP_ACTION = "http://www.webserviceX.NET/GetWeather"; 
     final SoapObject requestObject=new SoapObject(NAMESPACE,"GetWeather"); 

     PropertyInfo pi = new PropertyInfo(); 
    pi.setName("CityName"); 
    pi.setValue(citta); 
    pi.setType(String.class); 
     requestObject.addProperty(pi); 

    SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11); 

     Marshal floatMarshal = new MarshalFloat(); 
     floatMarshal.register(envelope); 

     envelope.setOutputSoapObject(requestObject); 

     HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 
    androidHttpTransport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); 
    String res=""; 

     try{ 
     androidHttpTransport.call(SOAP_ACTION, envelope); 
     SoapObject response = (SoapObject)envelope.bodyIn; 
     res=response.getPropertyAsString("Body"); 
    }catch(Exception e){Log.d("Prova",e.toString());} 
    Log.d("Prova", res); 
     return res; 
} 

}

Mais Je reçois cette exception: java.io.IOException: la requête HTTP a échoué, statut HTTP: 500

Où est-ce que je me trompe?

Répondre

0
private static final String NAMESPACE = "http://www.webserviceX.NET"; 

devrait être private static final String NAMESPACE = "http://www.webserviceX.com";

et final String SOAP_ACTION = "http://www.webserviceX.NET/GetWeather"; devrait être final String SOAP_ACTION = "http://www.webserviceX.com/GetWeather";

laissez-moi savoir si je me trompe.

Questions connexes