如何编码我想要作为查询字符串传递的URL

时间:2012-03-09 22:59:23

标签: java url

我正在尝试将URL作为查询字符串的参数发送,如下例所示:

http://localhost.com/myapp.jsp?pathToFileURL=http://192.168.0.1/my_file.pdf

我所做的是在将路径发送到服务器之前使用了编码URL对路径进行编码,问题是由于这个原因我得到了“400无效的URI:noSlash”。

从我读到的问题是tomcat安全性,我应该向tomcat启动添加一个参数

-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH = true

但是我无法修改tomcat的参数,所以可以用其他方式吗?

由于

3 个答案:

答案 0 :(得分:1)

在黑暗中完成刺,但您可以尝试使用反斜杠转义斜杠,或者您可以尝试使用%2F替换它们,这是正斜杠的URL编码版本。

希望这有帮助。

答案 1 :(得分:1)

您可以在客户端执行 URLSafebase64 编码,在服务器端执行 URLSafebase64 解码。 检查 URLEncoder 类以获取更多详细信息: http://docs.oracle.com/javase/1.5.0/docs/api/java/net/URLEncoder.html

您可以在使用任何在线URL编码器/解码器进行编码之前手动测试。只需谷歌“URL编码器/解码器”

答案 2 :(得分:0)

Base64然后在接收端base64上解析URL以获取原始URL而不做任何更改