отправка SOAP-запроса - PullRequest
       11

отправка SOAP-запроса

1 голос
/ 02 августа 2011

В моем приложении я хочу отправить SOAP-запрос на некоторый URL, SOAP-запрос для отправки выглядит так:

POST /TelLink/WrenchENTService.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://WrenchGlobal/GetToDoList"

<?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>
<GetToDoList xmlns="http://WrenchGlobal/">
    <viPeriod>int</viPeriod>
    <vsUserID>string</vsUserID>
  </GetToDoList>
</soap:Body>
</soap:Envelope>

В приведенном выше коде мне придется заменить «int» и «строка "с фактическими значениями, и он вызовет GetToDoList на сервере.Моя проблема в том, что я не знаю, как отправить этот запрос на сервер?(используя httppost) Кто-нибудь может мне помочь?

Ответы [ 2 ]

1 голос
/ 02 августа 2011
int viPeriod;
String vsUserID;
String NAMESPACE = "http://WrenchGlobal/";
String SOAP_ACTION = "http://WrenchGlobal/GetToDoList";
String METHOD_NAME = "GetToDoList";

String result = null;
Object resultRequestSOAP = null;

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

request.addProperty("viPeriod", viPeriod);
request.addProperty("vsUserID", vsUserID);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                SoapEnvelope.VER11);

envelope.dotNet = true;
envelope.setOutputSoapObject(request);

HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;

try {
    androidHttpTransport.call(SOAP_ACTION, envelope);

    String requestDumpString = androidHttpTransport.requestDump;
    System.out.println("requestDump : " + requestDumpString);

    resultRequestSOAP = envelope.getResponse(); // Output received
    result = resultRequestSOAP.toString(); // Result string

    System.out.println("OUTPUT : " + result);
} catch (Exception e) {
    e.printStackTrace();
}

Надеюсь, это поможет.

0 голосов
/ 02 августа 2011

IntentService HttpPost , вероятно, то, что вы хотите. В Google доступно множество фрагментов; здесь только один из них.

...