base64加密放入URL引發的問題解決,java.net.MalformedURLException:Illegal character in URL

今天在做跟另一個系統的同步用戶接口時,接口使用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,也就是將“+”和“\”換成了“-”和“_”符號,且不適用補位。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章