Ошибка Android KSoap

Я использую мыло для доступа к веб-службе в коде, показанном ниже, и получаю следующую ошибку, для понимания которой мне нужна помощь:

SoapFault — код ошибки: строка ошибки «soap: Server»: «System.Web.Services.Protocols.SoapException: серверу не удалось обработать запрос. ---> System.Data.SqlClient.SqlException: процедура или функция 'getWCity' ожидает параметр '@CountryName', который не был предоставлен. at WebServicex.GlobalWeather.GetCitiesByCountry(String CountryName) --- Конец внутренней трассировки стека исключений ---' faultactor: 'null' деталь: org.kxml2.kdom.Node@bf51d7c

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

person NITHIN SUHAS    schedule 29.12.2016    source источник
comment
Синтаксические улучшения   -  person clearlight    schedule 01.01.2017


Ответы (1)


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;
person petrumo    schedule 29.12.2016