2011-06-17 84 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,您可以获得必须解析并转换为字节数组的字节数组的字符串表示形式。

如果它是一个载体,我不认为,你将有问题将其转换为字节数组。

相关问题