如何使用Apache HttpClient在查询中正确编码“[”和“]”?

时间:2010-04-12 20:28:07

标签: java httpclient query-parameters

我有一个GET方法,如下所示:

 GetMethod method = new GetMethod("http://host/path/?key=[\"item\",\"item\"]");

这样的路径在直接输入浏览器时工作正常,但运行时上面的行会导致IllegalArgumentException:无效的URI。

我看过使用URIUtils课程,但没有成功。有没有办法自动编码(或在URL上添加查询字符串而不会导致HttpClient barf?)。

2 个答案:

答案 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);