在我的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