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