2016-12-29 4 views
1

私は理解の助けを必要とされ、以下のコードでWebサービスにアクセスし、次のエラーを取得するために石鹸を使用しています:アンドロイドKSoapエラー

にSoapFault - のfaultcode:「石鹸:Server」を faultstring: 'System.Web.Services.Protocols.SoapException:サーバーが処理要求を できませんでした。 ---> System.Data.SqlClient.SqlException:プロシージャまたは 関数 'getWCity'は、 '@CountryName'パラメータが必要ですが、 は指定されていません。 WebServicex.GlobalWeather.GetCitiesByCountry(文字列COUNTRYNAME) で ---内部例外スタックトレースの終わり---」faultactorは: 'NULL' 詳細:[email protected]

public String Test() 
{ 
    String SOAP_ACTION = "http://www.webserviceX.NET/GetCitiesByCountry"; 
    String METHOD_NAME = "GetCitiesByCountry"; 
    String NAMESPACE = "http://www.webserviceX.NET/"; 
    String URL = "http://www.webservicex.com/globalweather.asmx?WSDL"; 

    SOAP_ACTION = NAMESPACE + METHOD_NAME; 
    String result="invalid"; 
    try 
    { 
     SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME); 
     Request.addProperty("CountryName", "India"); 

     SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     soapEnvelope.dotNet = true; 
     soapEnvelope.setOutputSoapObject(Request); 
     HttpTransportSE transport = new HttpTransportSE(URL); 
     transport.call(SOAP_ACTION, soapEnvelope); 
     SoapPrimitive resultString; 
     resultString = (SoapPrimitive) soapEnvelope.getResponse(); 
     result = resultString .toString() ; 
     return result ; 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 
    return result; 
} 
+0

文法改善 – clearlight

答えて

2

SoapObject(NAMESPACE、METHOD_NAME);それは名前空間として使用しています:

"http://www.webserviceX.NET/"

が、それはあなたが変更される可能性が

"http://www.webserviceX.NET"

次のようになります。

String METHOD_NAME = "GetCitiesByCountry"; 
String NAMESPACE = "http://www.webserviceX.NET"; 


SOAP_ACTION = NAMESPACE + "/" + METHOD_NAME; 
+1

は、この問題を解決しました。ありがとうございます。 –