如何编码查询参数以在Java中使用url?我知道,这似乎是一个显而易见的问题。使用Java编码URL查询参数
有两个微妙之处我不知道的:
- 如果空间上的网址为“+”或“%20”编码?在Chrome浏览器中,如果我输入“http://google.com/foo=?bar me”,Chrome会将其更改为使用%编码20
- 是否需要/正确地将冒号“:”编码为%3B? Chrome没有。
注:
java.net.URLEncoder.encode
似乎不工作,它似乎是要提交表单数据编码。例如,它将空间编码为+
而不是%20
,并对不需要的冒号进行编码。java.net.URI
不编码查询参数
这个问题看起来有用:http://stackoverflow.com/questions/444112/how-do-i-编码-URI - 对参数值 – 2011-03-16 19:14:43
查询部分的结构依赖于服务器,尽管大多数人期望'application/x-www-form-urlencoded'键/值对。在这里看到更多:http://illegalargumentexception.blogspot.com/2009/12/java-safe-character-handling-and-url.html – McDowell 2011-03-16 20:18:00