0

我正在使用 Web 服务在 Android APP 和 SOAP Web 服务之间发送数据。这个 Webservice 只接受序列化的对象,唯一的方法是使用:

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

此类允许在单个字符串中“加密”数据,反之亦然,但问题是:

1. - 出于生产目的,是个好主意吗?

2. - 是否有其他方法可以更有效地做同样的事情?

感谢所有回复和良好的编程!

4

2 回答 2

2

这里有两个问题:

1)使用Base64编码?它增加了负载(一点点)和消息的长度(很多)。如果您的内容在编码时具有不能与 SOAP (vg < >) 很好地混合的符号,则其优势在于它们不再造成麻烦。

我的推荐?将它用于可能包含不安全符号的小块信息(vg non sanitized Strings)。如果您必须传递大量数据(vg 文件),请尝试使用更基本的 HTTP 方法而不是 SOAP/JSON。

2)使用那个特定的库?正如 fge 所说,它引入了对 VM 的依赖。如果您确定使用 Oracle JVM,则可以,否则您可以下载第三方 API 并使用它。

于 2013-06-17T22:32:58.817 回答
0

1)不,这是不正确的。您的程序变得不可移植,因为sun.misc包不是 Java SE API 的一部分,并且不能保证出现在标准库中。

2)您可以使用DatatypeConverter.parseBase64Binary/ DatatypeConverter.printBase64Binaryfrom javax.xml.bindpackage 代替。

于 2013-06-18T02:45:50.493 回答