2011-08-02 18 views
1

を送信し、送信するSOAPリクエストは、上記のコードで は、私はいくつかのURLにSOAPリクエストを送信したい私のアプリケーションでは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を使用して)誰も私を助けることができますか?

+1

[Android、HTTP POST(SOAP)経由でXMLを送信する](http://stackoverflow.com/questions/2559948/android-sending-xml-via-http-post-soap) – balexandre

答えて

1
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

ありがとうございます。上記のコードでNAMESPACEとは何ですか?私は上記のSOAPリクエストでそれを持っていますか?私はすべてのSOAPリクエスト(XMLで)を作成する必要はありません....? – Kishan

+0

NAMESPACE(あなたが提供したWebサービスメソッドから)とrequestDumpを含む答えを編集しました。要求は要求されたxml形式で送信されていますが、これはrequestDumpから理解できます。 – Ian

+0

上記の編集コードでは、SoapEnvelope.VER11とは何ですか?初期化や何かのような、明示的なケアを必要とするものなのでしょうか? "androidHttpTransport.call(SOAP_ACTION、envelope);"私はSOAP_ACTIONとして何を使うべきですか? – Kishan

0

IntentServiceHttpPostです。 Googleにはたくさんのスニペットが用意されています。 hereのうちの1つだけです。

+0

ありがとうございます。しかし、私は実際に上記のSOAP要求をhttppostオブジェクトに埋め込む必要があるのか​​分かりませんでしたか?どのように実際に私はhttppostオブジェクトにSOAPリクエストを配置することができますか? – Kishan

+0

その場合、おそらくライブラリの可能性があります。ここでSOAPとAndroidのかなりよく議論があります:http://stackoverflow.com/questions/297586/how-to-call-soap-web-service-with-android – Paddy

+0

私はこれに答えを使うことができると思いますスタックオーバー質問。 [リンク](http://stackoverflow.com/questions/2559948/android-sending-xml-via-http-post-soap)私は正しい? – Kishan

関連する問題