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

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

如果它是一个SoapPrimitive,使用它的toString()方法,你可以获得必须被解析并转换为字节数组的字节数组的String表示。

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