1

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

首先,相机向我发送了一个byte[]数组,但这不是可序列化的,我无法将其发送到网络服务。现在我正在尝试将其转换为String(此类型是可序列化的),并在 web 服务中将其重新转换Stringbyte[]数组。

我该怎么做?

例如,我正在尝试:

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

我如何得到这个String并准确地转换为原始文件byte[]

提前致谢!

4

3 回答 3

2

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

Android 的Base64使上述内容变得微不足道。

这个问题几乎是Android 的重复:使用 Base64 将 Image 编码为 String

于 2013-06-16T20:06:52.023 回答
1

如果您的网络服务仅支持 ASCII 输入,您可以使用 base 64 编码您的数据:Java 中的 Base64 编码

于 2013-06-16T20:07:05.807 回答
0

最后,我使用它将 byte[] 发送到 Web 服务并对其进行解码。谢谢!

安卓肥皂服务:

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

SOAP 网络服务

BASE64Decoder decoder = new BASE64Decoder();                    
byte[] a = decoder.decodeBuffer(VAR);
于 2013-06-16T20:33:46.787 回答