package com.byoutline.kickmaterial.utils; import timber.log.Timber; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLDecoder; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; /** * Helper methods fot extracting query parameters from url. * Created by Sebastian Kacprzak <sebastian.kacprzak at byoutline.com> on 30.03.15. */ public final class QueryParamsExtractor { private QueryParamsExtractor() { } public static Map<String, String> getQueryParams(String url) { try { URL u = new URL(url); return splitQuery(u); } catch (MalformedURLException | UnsupportedEncodingException e) { Timber.e("Failed to get query params from url: " + url, e); return Collections.emptyMap(); } } public static Map<String, String> splitQuery(URL url) throws UnsupportedEncodingException { Map<String, String> queryPairs = new LinkedHashMap<>(); String query = url.getQuery(); String[] pairs = query.split("&"); String charsetName = "UTF-8"; for (String pair : pairs) { int idx = pair.indexOf("="); String key = URLDecoder.decode(pair.substring(0, idx), charsetName); String value = URLDecoder.decode(pair.substring(idx + 1), charsetName); queryPairs.put(key, value); } return queryPairs; } }