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 []数组?
答案 0 :(得分:1)
假设所呈现的代码使用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,我认为将它转换为字节数组时会遇到问题。