Проблемы с параметрами Android ksoap2

#android #web-services #parameters #ksoap2

#Android #веб-сервисы #параметры #ksoap2

Вопрос:

Я пытаюсь передать параметр в свою службу, код запускается, но служба никогда не получает параметры?? Вызов работает, я просто добавляю переменную, затем возвращаю ее, при ее возврате я обнаруживаю, что веб-сервис так и не получил ее!

Спасибо за вашу помощь

     final String SOAP_ACTION = "http://NathofGod.com/GetCategoryById";
    final String METHOD_NAME = "GetCategoryById";
    final String NAMESPACE = " http://NathofGod.com/";
    final String URL = "http://10.0.2.2:4021/Service1.asmx";

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

 PropertyInfo pi1 = new PropertyInfo();
        pi1.setName("name");
        pi1.setValue("the name");
        pi1.setType(String.class);
        pi1.setNamespace(NAMESPACE);
        request.addProperty(pi1);

 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(request);

       HttpTransportSE conn = new HttpTransportSE(URL);

        try
        {
            conn.call(SOAP_ACTION, envelope);
            SoapObject response = (SoapObject)envelope.getResponse();
        }

        catch(Exception e)
        {
            e.printStackTrace();
        }
  

Ответ №1:

не уверен, почему не работает, но я помню, как использовал его с

 request.addProperty("name", "my_Name");
  

и это сработало нормально, в противном случае вы можете захотеть проверить серверную часть…

Комментарии:

1. [WebMethod] общедоступная строка HelloWorld (int id) { if (id > 0) { возвращает «Привет, мир Android»; } else { возвращает «Почему ты не хочешь ухаживать»; } }

Ответ №2:

Эта строка кода была моей проблемой!!!

 envelope.dotNet = true;
  

УДАЛИТЕ ЕГО

Ответ №3:

Попробуйте отладить его, следуя инструкциям в wiki.

Ответ №4:

Я немного почистил код и поместил его в функцию. Я не уверен, что что-то изменилось, но этот код работает. Спасибо за ответы.

общедоступный SoapObject soap() вызывает исключение IOException, XmlPullParserException {

     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
    request.addProperty("name", "myname"); 
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.dotNet = true;
    envelope.setOutputSoapObject(request); 
    HttpTransportSE conn = new HttpTransportSE(URL);

    conn.call(SOAP_ACTION, envelope); //send request
    SoapObject result=(SoapObject)envelope.getResponse(); 
    return resu<
 }
  

Ответ №5:

конечное пространство ИМЕН строки = » http://NathofGod.com /«;

Изменить на

 final String NAMESPACE = "http://NathofGod.com/";
  

Удалите пустое пространство и создайте пространство имен так, как оно указано в вашем запросе XML. Пожалуйста, обратите внимание, что он также чувствителен к регистру.