用Java编码URL查询参数

如何在Java中将查询参数编码为URL?我知道,这似乎是一个显而易见且已经提出的问题。

我不确定有两个微妙之处:

  1. 网址上的空格应该编码为“ +”还是“%20”?在chrome中,如果我输入“ http://google.com/foo=?bar me”,则chrome会将其更改为使用%20进行编码

  2. 是否有必要/正确将冒号“:”编码为%3B?Chrome没有。

笔记:

  • java.net.URLEncoder.encode似乎不起作用,似乎是要对要编码的数据进行表单提交。例如,它将空格编码为,+而不是%20,并编码不必要的冒号。

  • java.net.URI 不编码查询参数


holdtom
浏览 615回答 3
3回答

守候你守候我

URIUtil在更新的版本中不再可用,在Java上更好的答案-编码URL或Sindi先生在此线程中。URIUtilApache httpclient的确很有用,尽管有一些替代方法URIUtil.encodeQuery(url);例如,它将空格编码为“ +”而不是“%20”两者在适当的情况下都是完全有效的。虽然如果您确实喜欢,可以发出字符串替换。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java