我正在使用 HttpClient 发送 GET 请求,+
但未编码。
1.如果我像这样传递query
未编码的参数字符串
URI uri = new URI(scheme, host, path, query, null);
HttpGet get = new HttpGet(uri);
然后+
符号不被编码,它在服务器上作为空格接收。url 的其余部分编码良好。
query
2.如果我像这样对字符串中的参数进行编码
param = URLEncoder.encode(param,"UTF-8");
然后我在服务器上得到一堆奇怪的符号,可能是因为url被编码了两次。
3.如果我只+
用%B2
这样替换
query = query.replaceAll("\\+","%B2");
然后%B2
在 HttpClient 执行 GET 时进行编码
如何使用 Apache HttpClient 正确编码 Get 参数并确保+
也已编码?