2012-01-11 64 views
1

我是android開發新手,我需要使用SOAP消息從Web服務中獲取XML文件。我已經嘗試了我的級別來找出Android中的SOAP消息解析,但是,我無法找到解析SOAP消息的確切解決方案。這裏我附上了我的示例代碼來解析SOAP消息。你能幫我解析Android中的SOAP消息嗎? (響應權限被拒絕)。如何在android中訪問Webservice?

我試過如下代碼:

SoapObject request = new SoapObject(NAMESPACE ,METHOD_NAME); 
request.addProperty("username","d"); 
request.addProperty("password","d123"); 
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
envelope.dotNet=true; 
envelope.setOutputSoapObject(request);envelope.setAddAdornments(true); 
HttpTransportSE httpTransport = new HttpTransportSE(URL);   
try 
 { 
    httpTransport.call(SOAP_ACTION, envelope); //send request 
     SoapObject result=(SoapObject)envelope.bodyIn; 
     String results = result.toString(); 
     tv.setText(""+results); 
 } 
 catch (Exception e) 
 { 
      tv.setText(e.getMessage()); 
  } 

AndroidManifest.Xml file: 

<uses-permission android:name="android.permission.INTERNET"> 
</uses-permission> 
+0

是REST不是一種選擇,還要確保你這樣做在後臺線程中分離到類似的主UI線程我解釋了另一個問題,我昨天在這裏回答http://stackoverflow.com/questions/8812281/android-emulator-crash-if-click-while-processing/8812798#8812798 – 2012-01-11 10:23:05

回答

1

你在你的代碼所缺少envelope.getResponse();,prabably可以是你沒有得到響應的原因。

你可以試試,

SoapObject result=(SoapObject)envelope.getResponse(); 
String results = result.toString(); 
+0

謝謝你,但回覆是同樣的權限被拒絕 – 2012-01-11 11:24:40

+0

發佈問題中的例外。 – 2012-01-11 11:25:47

0

你可以像下面這樣做

 HttpPost httppost = new HttpPost(webServicePath); 
    httppost.setHeader("Content-Type", "text/xml;charset=UTF-8"); 

    HttpParams params = new BasicHttpParams(); 
    params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, 
      HttpVersion.HTTP_1_1); 

    String soapRequestXML = getXMLAsString(); 
    soapRequestXML = prepareInputParam(soapRequestXML); 

    StringEntity se; 
    se = new StringEntity(soapRequestXML, HTTP.UTF_8); 
    se.setContentType("text/xml"); 
    httppost.setEntity(se); 

    response = httpClient.execute(httppost); 
+0

感謝您的回覆。 – 2012-01-13 04:56:50