简体   繁体   中英

Generate a Get query string in Java

I want to generate a Get query string in java like so

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

So my method has 2 parameters the base url(www.example.com/somethingToGet) is the first argument and the 2nd argument is a map data structure. I want to iterate over the map and generate a string like so

key1=value&key2=value....

It shouldn't end with ampersand. I don't want to use any built in functions, I want to know the logic how such strings are generated.

Something like this:

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

You can also use the format method in URLEncoder class from the Apache HttpComponents library to create a query string. As per the documentation it

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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