2011-01-23 79 views
0

我试图从android应用程序中的base64Binary字段获取一个字节[]。 虽然由于某些原因,数据数组在数据库中已满,但C#中的相同数据数组返回正数,例如:Android KSOAP2 base64来自.net webservice的二进制响应

在C#webservice中,字节数组可能看起来像46 ,0,45 ..... and android it looks like 46,0,-112 ......

如何从base64Binary字段与KASOP2中获得正确的字节数组?

这是目前使用的代码IM:

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME1); 
request.addProperty("Name", sName); 
SoapSerializationEnvelope envelope = 
    new SoapSerializationEnvelope(SoapEnvelope.VER11); 
envelope.dotNet = true; 
envelope.setOutputSoapObject(request); 


try 
{ 
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 
androidHttpTransport.call(SOAP_ACTION, envelope); 
Object o = envelope.bodyIn; 
SoapPrimitive result = (SoapPrimitive)envelope.getResponse(); 
//to get the data should be a base 
String resultData = result.toString(); 


} 

PS我已经通过大约6个不同的base64解码类运行resultData,他们都对其进行解码错误,所以即时猜测问题的字符串由返回响应。

任何帮助,将不胜感激, 谢谢, 图腾

回答

0

实际我的问题很简单,我忘了服务器是C++,因此字节的base64编码为无符号,以及所有我发现的Java类是用字节。 刚刚从读取流中删除签署有点像这样:

nextByte = (short)(0xFF & (short)buf[offset + i]); 
+0

u能请简单介绍一下它please.I很努力2天 –