使用Java生成Get查询字符串

时间:2015-06-11 11:59:40

标签: java

我想在java中生成一个Get查询字符串,如此

www.example.com/somethingToGet?key1=value&key2=value....

所以我的方法有2个参数,基本网址(www.example.com/somethingToGet)是第一个参数,第二个参数是地图数据结构。我想迭代地图并生成一个像这样的字符串

key1=value&key2=value....

它不应该以&符结束。 我不想使用任何内置函数,我想知道如何生成这些字符串的逻辑。

2 个答案:

答案 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.