从我的 Web 应用程序中,我正在重定向到一个外部 URL,该 URL 具有一些凭据作为 URL 字符串的一部分。我想在重定向之前单独编码凭证部分。我有以下网址:
String url1 = "http://servername:7778/reports/rwservlet?server=server1&ORACLE_SHUTDOWN=YES&PARAMFORM=no&report=test.rdf&desformat=pdf&desname=test.pdf&destype=cache¶m1=56738&faces-redirect=true&";
我将其编码为:
String URL = "userid=username/passwd@DBname";
encodedURL = URLEncoder.encode(URL, "UTF-8");
String redirectURL = url1 + encodedURL1;
此代码生成的 URL 是
http://servername:7778/reports/rwservlet?server=server1&ORACLE_SHUTDOWN=YES&PARAMFORM=no&report=test.rdf&desformat=pdf&desname=test.pdf&destype=cache¶m1=56738&faces-redirect=true&userid=%3Dusername%2Fpasswd%40DBname
正如我们在编码 URL 的末尾看到的那样,只有 / 之类的特殊字符已被编码。即已userid=username/passwd@DBname
成为userid=%3Dusername%2Fpasswd%40DBname
我想生成一个 URL,它将对整个字符串 "username/passwd@DBname" 进行编码。就像是 :
userid=%61%62
我怎样才能做到这一点?