繁体   English   中英

用Java生成Get查询字符串

[英]Generate a Get query string in Java

我想像这样在Java中生成Get查询字符串

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

因此,我的方法有2个参数,基本url(www.example.com/somethingToGet)是第一个参数,第二个参数是map数据结构。 我想遍历地图并生成一个像这样的字符串

key1=value&key2=value....

它不应该以“&”号结尾。 我不想使用任何内置函数,我想知道如何生成此类字符串的逻辑。

像这样:

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();
}

您还可以使用Apache HttpComponents库中URLEncoder类中的format方法来创建查询字符串。 根据文档

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.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM