base64加密放入URL引发的问题解决,java.net.MalformedURLException:Illegal character in URL

来源:互联网 发布:数据质量的重要性 编辑:程序博客网 时间:2024/05/16 13:39

今天在做跟另一个系统的同步用户接口时,接口使用base64转换完之后的字符串加入到url中,总是报java.net.MalformedURLException:Illegalcharacter in URL.

用转义字符转换了也不行。

后来发现是引用的base64jar包的问题。

应该引用

import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;

加密方法:
String url = "/shopping/confirm.action?id=1&name=itzhai";String code = Base64.encode(url.getBytes());
而我开始使用的方法是:
import sun.misc.BASE64Encoder;
BASE64Encoder().encode(url.getBytes());
后来了解到:
1.sun.misc包是Sun公司提供给内部使用的专用API,在java API文档中我们看不到任何有关BASE64影子,不建议使用。
2.Apache还提供了,非标准的实现方式:
1.不再添加回车符。2.Url Base64,也就是将“+”和“\”换成了“-”和“_”符号,且不适用补位。
0 0