All Downloads are FREE. Search and download functionalities are using the official Maven repository.

wf.utils.java.misc.UrlQueryParser Maven / Gradle / Ivy

The newest version!
package wf.utils.java.misc;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;

public class UrlQueryParser {


    public Map parseQueryString(String query) {
        try {
            Map params = new HashMap<>();

            String[] pairs = query.split("&");
            for (String pair : pairs) {
                String[] keyValue = pair.split("=", 2);
                if (keyValue.length == 2) {
                    String key = URLDecoder.decode(keyValue[0], StandardCharsets.UTF_8.name());
                    String value = URLDecoder.decode(keyValue[1], StandardCharsets.UTF_8.name());
                    params.put(key, value);
                } else if (keyValue.length == 1) {
                    String key = URLDecoder.decode(keyValue[0], StandardCharsets.UTF_8.name());
                    params.put(key, "");
                }
            }

            return params;
        }
        catch (UnsupportedEncodingException e) { throw new RuntimeException(e); }
    }

    public String buildQueryString(Map params) {
        try {
            StringBuilder query = new StringBuilder();

            for (Map.Entry entry : params.entrySet()) {
                String key = URLEncoder.encode(entry.getKey(), StandardCharsets.UTF_8.name());
                String value = URLEncoder.encode(entry.getValue(), StandardCharsets.UTF_8.name());

                if (query.length() != 0)
                    query.append("&");

                query.append(key).append("=").append(value);
            }

            return query.toString();
        }
        catch (UnsupportedEncodingException e) { throw new RuntimeException(e); }
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy