我正在使用 Web 服务在 Android APP 和 SOAP Web 服务之间发送数据。这个 Webservice 只接受序列化的对象,唯一的方法是使用:
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
此类允许在单个字符串中“加密”数据,反之亦然,但问题是:
1. - 出于生产目的,是个好主意吗?
2. - 是否有其他方法可以更有效地做同样的事情?
感谢所有回复和良好的编程!
这里有两个问题:
1)使用Base64编码?它增加了负载(一点点)和消息的长度(很多)。如果您的内容在编码时具有不能与 SOAP (vg < >
) 很好地混合的符号,则其优势在于它们不再造成麻烦。
我的推荐?将它用于可能包含不安全符号的小块信息(vg non sanitized Strings)。如果您必须传递大量数据(vg 文件),请尝试使用更基本的 HTTP 方法而不是 SOAP/JSON。
2)使用那个特定的库?正如 fge 所说,它引入了对 VM 的依赖。如果您确定使用 Oracle JVM,则可以,否则您可以下载第三方 API 并使用它。
1)不,这是不正确的。您的程序变得不可移植,因为sun.misc
包不是 Java SE API 的一部分,并且不能保证出现在标准库中。
2)您可以使用DatatypeConverter.parseBase64Binary
/ DatatypeConverter.printBase64Binary
from javax.xml.bind
package 代替。