繁体   English   中英

如何从Android中的Web服务检索二进制数据?

[英]How to retrieve binary data from Web Service in Android?

   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 Web服务的代码,该服务发送一个byte []数组。 如何从结果变量中获取byte []数组,或者是否有另一种方法来检索byte []数组?

假设所提供的代码正在使用kSoap2。 如果要访问检索到的数据,请忽略由envelope.getResponse()返回的响应对象。

您正在寻找的数据可以通过以下方式检索

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

返回的Object o通常为SoapPrimitive类型,或者可以为Vector

如果使用toString()方法将其作为SoapPrimitive,则可以获取必须解析并转换为字节数组的字节数组的String表示形式。

如果它是一个Vector,那么我认为将其转换为字节数组不会有问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM