2013-03-16 27 views
0

我想了解如何在android應用程序中發送此XML。我讀過使用kso​​ap庫是一種做法。我已經嘗試過教程,但其中沒有一個似乎適用於我;即使是樣品下載。任何幫助表示讚賞。使用Android發送POST/SOAP動作

POST /nrc/control_0 HTTP/1.1 
User-Agent: Panasonic iOS VR-CP UPnP/2.0 
Host: 10.0.1.155:55000 
Content-Type: text/xml; charset="utf-8" 
SOAPACTION: "urn:panasonic-com:service:p00NetworkControl:1#X_SendKey" 
Content-Length: 331 

<?xml version="1.0" encoding="utf-8"?> 
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" 
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
<s:Body> 
<u:X_SendKey xmlns:u="urn:panasonic-com:service:p00NetworkControl:1"> 
<X_KeyEvent>NRC_MUTE-ONOFF</X_KeyEvent> 
</u:X_SendKey> 
</s:Body> 
</s:Envelope> 

回答

0

下面給出的是用來進行SOAP調用的代碼:

public String callService(String URL, String METHOD_NAME, String NAMESPACE, 
     String SOAP_ACTION, String param) { 
    String data = ""; 

    Log.v(webserviceadpater, " \n METHOD_NAME = ---> " + METHOD_NAME 
      + " <--- \n "); 

    try { 
     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
     request.addProperty("xml", param); 
     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
       SoapEnvelope.VER11); 

     envelope.setOutputSoapObject(request); 

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

     transportSE.call(SOAP_ACTION, envelope); 

     SoapObject result = (SoapObject) envelope.bodyIn; 

     for (int i = 0; i < result.getPropertyCount(); i++) { 
      data = result.getProperty(i).toString(); 
      Log.v(webserviceadpater, "result = " + data); 
     } 

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

    return data; 
}