HTTP GET метод для SOAP в Android, пожалуйста, поправьте меня - PullRequest
0 голосов
/ 18 августа 2011

Я использую веб-сервис. Я использовал HTTP GET для всех функций. Но эта функциональность должна отправлять длинный XML-код, из-за которого возникает проблема с длиной запроса. Я знаю, что сервис также поддерживает SOAP 1.1, 1.2 Но я никогда не использовал SOAP, я не знаю, как это сделать. Я гуглил и нашел несколько примеров. Я пытаюсь использовать Пример для меня. Пожалуйста, я пытаюсь конвертировать по этой странице

http://200.26.174.211/WsServices/WsServices.asmx?op=PagoFactura

Это URL HTTP GET, который я использую и хочу заменить на SOAP

HTTP GET

GET /WsServices/WsServices.asmx/PagoFactura?AppUsuario=string&AppPassword=string&Usuario=string&Password=string&monto=string&cantidadFacturas=string&IdEmpresaServicio=string&IdUsuarioEmpresaServicio=string&IdCuenta=string&cvv=String&xmlFacturas=string HTTP/1.1
Host: 200.26.174.211
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

К этому

POST /WsServices/WsServices.asmx HTTP/1.1
Host: 200.26.174.211
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/PagoFactura"

<?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>
<PagoFactura xmlns="http://tempuri.org/">
  <AppUsuario>string</AppUsuario>
  <AppPassword>string</AppPassword>
  <Usuario>string</Usuario>
  <Password>string</Password>
  <monto>decimal</monto>
  <cantidadFacturas>int</cantidadFacturas>
  <IdEmpresaServicio>int</IdEmpresaServicio>
  <IdUsuarioEmpresaServicio>int</IdUsuarioEmpresaServicio>
  <IdCuenta>int</IdCuenta>
  <cvv>string</cvv>
  <xmlFacturas>string</xmlFacturas>
</PagoFactura>
  </soap:Body>
 </soap:Envelope>

Это код Android, найденный в примере. Я запутался, как я положил выше в код Android. Пожалуйста, помогите мне с XMLNS и названием метода

private static final String SOAP_ACTION = "myMethod";
private static final String METHOD_NAME = "myMethod";
private static final String NAMESPACE = "http://mynamespace.com/";
private static final String URL = "http://myserver.com/bean";

void test() {
try {
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
    request.addProperty("prop1", "myprop");

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.setOutputSoapObject(request);
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
    androidHttpTransport.call(SOAP_ACTION, envelope);

    Object result = envelope.getResponse();

    //handle result here

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

1 Ответ

2 голосов
/ 18 августа 2011

Вот хороший видеоурок по работе с веб-сервисом с использованием k-soap:

Пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...