Below snippet takes a url and convert the query parameters to
Map<String, String>.
public static Map<String, String> getQueryParamsMap(URL url) throws UnsupportedEncodingException {
if (url == null) {
return Collections.EMPTY_MAP;
}
// Get Query part of the url
String queryPart = url.getQuery();
if (queryPart == null || queryPart.isEmpty()) {
return Collections.EMPTY_MAP;
}
Map<String, String> queryParams = new HashMap<String, String>();
String[] pairs = queryPart.split("&");
for (String pair : pairs) {
String[] keyValuePair = pair.split("=");
queryParams.put(URLDecoder.decode(keyValuePair[0], StandardCharsets.UTF_8.name()),
URLDecoder.decode(keyValuePair[1], StandardCharsets.UTF_8.name()));
}
return queryParams;
}
App.java
package com.sample.app;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class App {
public static Map<String, String> getQueryParamsMap(URL url) throws UnsupportedEncodingException {
if (url == null) {
return Collections.EMPTY_MAP;
}
// Get Query part of the url
String queryPart = url.getQuery();
if (queryPart == null || queryPart.isEmpty()) {
return Collections.EMPTY_MAP;
}
Map<String, String> queryParams = new HashMap<String, String>();
String[] pairs = queryPart.split("&");
for (String pair : pairs) {
String[] keyValuePair = pair.split("=");
queryParams.put(URLDecoder.decode(keyValuePair[0], StandardCharsets.UTF_8.name()),
URLDecoder.decode(keyValuePair[1], StandardCharsets.UTF_8.name()));
}
return queryParams;
}
public static void main(String args[]) throws MalformedURLException, UnsupportedEncodingException {
String urlStr = "https://abc123.com/questions/?filter=age&page=112&pagesize=50";
URL url = new URL(urlStr);
Map<String, String> queryParamsMap = getQueryParamsMap(url);
for (String key : queryParamsMap.keySet()) {
System.out.println(key + " = " + queryParamsMap.get(key));
}
}
}
Output
filter = age
pagesize = 50
page = 112
You may
like
No comments:
Post a Comment