#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. Пожалуйста, обратите внимание, что он также чувствителен к регистру.