如何在Java中将查询参数编码为URL?我知道,这似乎是一个显而易见且已经提出的问题。
我不确定有两个微妙之处:
- 网址上的空格应该编码为“ +”还是“%20”?在chrome中,如果我输入“ http://google.com/foo=?bar me”,则chrome会将其更改为使用%20进行编码
- 是否有必要/正确将冒号“:”编码为%3B?Chrome没有。
笔记:
java.net.URLEncoder.encode
似乎不起作用,似乎是为了对要编码的数据进行表单提交。例如,它将空格编码为,+
而不是%20
,并编码不必要的冒号。java.net.URI
不编码查询参数
application/x-www-form-urlencoded
键/值对,但查询部分的结构取决于服务器。详情请参阅这里:legalargumentexception.blogspot.com/2009/12/…–