在我的web应用程序中,我正在重定向到外部URL,该URL包含一些凭据作为URL字符串的一部分。我想在重定向之前单独对凭证部分进行编码。我有以下网址:Java 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/[email protected]";
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/[email protected]
已成为userid=%3Dusername%2Fpasswd%40DBname
我想要生成一个URL,其中将编码整个字符串“username/passwd @ DBname”。例如:
userid=%61%62
我该如何做到这一点?
这没有任何意义。你是否意识到,如果没有一个愿望最终用户的努力,这仍然是可解码的?你确定你没有把编码和加密搞混? – BalusC
我只是想不直接显示网址。我知道这可能会有潜在的安全漏洞,但我的应用程序需要这样做。我认为它可以被解码。谢谢您的帮助。 – user1722908