类型转换:Byte[]到String, String到Byte[]



我正在尝试用于教育目的,使用Android的相机获取照片并使用SOAP将其发送到web服务。

首先,相机发送给我一个byte[]数组,但这不是可序列化的,我不能将其发送给webservice。现在我正试图将其转换为String(此类型是可序列化的),并在web服务中将此String重新转换为byte[]数组。

我怎么能做到呢?

例如,我正在尝试:

request.addProperty("photo", (Arrays.toString((byte[])params[0])));

我如何得到这个String并转换为原来的byte[] ?

提前感谢!

如果您确实需要将byte[]转换为String,请使用用于任意字节数据的中间序列化,例如Base64。String s用于字符数据,而不是任意的byte[] s。

Android的Base64类使以上这些变得微不足道。

这个问题几乎是Android的复制品:使用Base64将图像编码为字符串

如果你的web服务只支持ASCII输入,你可以用Base64编码你的数据:

最后我用它来发送byte[]到Webservice并解码它。谢谢!

ANDROID SOAP SERVICE:

request.addProperty("photo", Base64.encodeToString((byte[])params[0], Base64.DEFAULT));
SOAP的WEBSERVICE

BASE64Decoder decoder = new BASE64Decoder();                    
byte[] a = decoder.decodeBuffer(VAR);

最新更新