2013-05-01 93 views
0

我试图调用此WebService的方法的GetWeather()一个简单的Web服务方法:http://www.webservicex.com/globalweather.asmx?WSDL安卓:调用使用kso​​ap2

这里是我的代码:

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; 
} 

}

但我得到这个异常:java.io.IOException:HTTP请求失败,HTTP状态:500

我在哪里错了?

回答

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

应该private static final String NAMESPACE = "http://www.webserviceX.com";

final String SOAP_ACTION = "http://www.webserviceX.NET/GetWeather";final String SOAP_ACTION = "http://www.webserviceX.com/GetWeather";

让我知道,如果我错了。

相关问题