У меня есть веб-сервис ASP.Net, который прекрасно работает из кода SOAP iPhone или другого клиента .Net. Однако, когда я пытаюсь использовать Ksoap2, параметры, передаваемые службе, не устанавливаются. В сервисе параметр «AuthenticationID» не должен входить, потому что первое, что делает WebMethod, это проверяет, является ли строка нулевой или пустой, и возвращает ответ «AuthenticationFailure». Я получил этот ответ, поэтому я знаю, что с SOAP все в порядке, просто параметр не передается.
public SoapObject soap(String METHOD_NAME, String SOAP_ACTION, String NAMESPACE, String URL) throws IOException, XmlPullParserException {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("AuthenticationID", "5");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(URL);
httpTransport.debug = true;
httpTransport.call(SOAP_ACTION, envelope);
SoapObject result=(SoapObject)envelope.getResponse();
return result;
}
И WSDL выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<LookupStores xmlns="http://blah.com/Services/">
<AuthenticationID>string</AuthenticationID>
<NameMatch>string</NameMatch>
</LookupStores>
</soap:Body>
</soap:Envelope>
Пожалуйста, дайте мне несколько вещей, чтобы попробовать это просто простая служба, и я подумал, что будет легко потреблять с помощью KSoap2.
Спасибо!