我有一个GET方法,如下所示:
GetMethod method = new GetMethod("http://host/path/?key=[\"item\",\"item\"]");
这样的路径在直接输入浏览器时工作正常,但运行时上面的行会导致IllegalArgumentException:无效的URI。
我看过使用URIUtils课程,但没有成功。有没有办法自动编码(或在URL上添加查询字符串而不会导致HttpClient barf?)。
答案 0 :(得分:2)
上面提到的URIUtils
类有一个方法encodeAll(str)
- 所以:
new GetMethod("http://host/path/?key="
+ URIUtil.encodeAll("[\"item\",\"item\"]"));
答案 1 :(得分:2)
您也可以使用java.net.URLEncoder:
String myURL = "http://host/path/?" +
URLEncoder.encode("key=[\"item\",\"item\"]", UTF-8);