我想在java中生成一个Get查询字符串,如此
www.example.com/somethingToGet?key1=value&key2=value....
所以我的方法有2个参数,基本网址(www.example.com/somethingToGet)是第一个参数,第二个参数是地图数据结构。我想迭代地图并生成一个像这样的字符串
key1=value&key2=value....
它不应该以&符结束。 我不想使用任何内置函数,我想知道如何生成这些字符串的逻辑。
答案 0 :(得分:1)
这样的事情:
public static String getQuery(String base, java.util.Map<String, String> map) {
StringBuilder str = new StringBuilder(base);
str.append('?');
boolean first = true;
for (java.util.Map.Entry<String, String> e : map.entrySet()) {
if (first)
first = false;
else
str.append('&');
str.append(e.getKey());
str.append('=');
str.append(e.getValue());
}
return str.toString();
}
答案 1 :(得分:0)
您还可以使用Apache HttpComponents库中的format method in URLEncoder类来创建查询字符串。根据文档
Returns a String that is suitable for use as an application/x-www-form-urlencoded list of parameters in an HTTP PUT or HTTP POST.