2011-06-17 86 views
0
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);   
    Log.d("WebService", "2"); 
    SoapSerializationEnvelope envelope = 
      new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.dotNet = true; 
    envelope.setOutputSoapObject(request); 
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 
    androidHttpTransport.call(SOAP_ACTION, envelope);      
    SoapPrimitive result = (SoapPrimitive)envelope.getResponse(); 

這是我打電話,它發送一個字節[]陣列的.NET網絡服務的代碼。我怎樣才能從結果的byte []數組變量或有另一種方法來檢索byte []數組?如何從Android Web服務中檢索二進制數據?

+0

看起來你正在使用的KSoap2庫生成請求。 – Robert 2011-06-17 13:40:57

回答

0

假設呈現代碼是使用kSoap2。如果您要訪問的檢索的數據忘記通過envelope.getResponse()返回的響應對象。

你正在尋找可以將數據經由

SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn; 
if (resultsRequestSOAP != null) { 
    Object o = resultsRequestSOAP.getProperty("name of the byte-array parameter"); 
    // ... 
} 

返回的對象O通常類型SoapPrimitive的是或者可以是Vector檢索。

如果它是一個使用它的toString()方法的SoapPrimitive,您可以獲得必須解析並轉換爲字節數組的字節數組的字符串表示形式。

如果它是一個載體,我不認爲,你將有問題將其轉換爲字節數組。

相關問題