Changed getQuerystringParameters impl to form-urldecode the parameters
This commit is contained in:
1 parent
906a979e63
commit
22367de553
2 files changed
+34
-12
No files matched your search
@@ -144,22 +144,16 @@ class Request
|
|||||||
* Get a {@link Map} of the query string parameters.
|
* Get a {@link Map} of the query string parameters.
|
||||||
*
|
*
|
||||||
* @return a map containing the query string parameters
|
* @return a map containing the query string parameters
|
||||||
|
* @throws OAuthException if the URL is not valid
|
||||||
*/
|
*/
|
||||||
public Map<String, String> getQueryStringParams()
|
public Map<String, String> getQueryStringParams()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Map<String, String> params = new HashMap<String, String>();
|
Map<String, String> params = new HashMap<String, String>();
|
||||||
String query = new URL(url).getQuery();
|
String queryString = new URL(url).getQuery();
|
||||||
if (query != null)
|
params.putAll(URLUtils.queryStringToMap(queryString));
|
||||||
{
|
params.putAll(this.querystringParams);
|
||||||
for (String param : query.split("&"))
|
|
||||||
{
|
|
||||||
String pair[] = param.split("=");
|
|
||||||
params.put(pair[0], pair[1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
params.putAll(querystringParams);
|
|
||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
catch (MalformedURLException mue)
|
catch (MalformedURLException mue)
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ public class URLUtils
|
|||||||
{
|
{
|
||||||
private static final String EMPTY_STRING = "";
|
private static final String EMPTY_STRING = "";
|
||||||
private static final String UTF_8 = "UTF-8";
|
private static final String UTF_8 = "UTF-8";
|
||||||
private static final char PAIR_SEPARATOR = '=';
|
private static final String PAIR_SEPARATOR = "=";
|
||||||
private static final char PARAM_SEPARATOR = '&';
|
private static final String PARAM_SEPARATOR = "&";
|
||||||
private static final char QUERY_STRING_SEPARATOR = '?';
|
private static final char QUERY_STRING_SEPARATOR = '?';
|
||||||
|
|
||||||
private static final String ERROR_MSG = String.format("Cannot find specified encoding: %s", UTF_8);
|
private static final String ERROR_MSG = String.format("Cannot find specified encoding: %s", UTF_8);
|
||||||
@@ -133,6 +133,12 @@ public class URLUtils
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Concats a key-value map into a querystring-like String
|
||||||
|
*
|
||||||
|
* @param params key-value map
|
||||||
|
* @return querystring-like String
|
||||||
|
*/
|
||||||
public static String concatSortedPercentEncodedParams(Map<String, String> params)
|
public static String concatSortedPercentEncodedParams(Map<String, String> params)
|
||||||
{
|
{
|
||||||
StringBuilder result = new StringBuilder();
|
StringBuilder result = new StringBuilder();
|
||||||
@@ -144,6 +150,28 @@ public class URLUtils
|
|||||||
return result.toString().substring(0, result.length() - 1);
|
return result.toString().substring(0, result.length() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses and form-urldecodes a querystring-like string into a map
|
||||||
|
*
|
||||||
|
* @param queryString querystring-like String
|
||||||
|
* @return a map with the form-urldecoded parameters
|
||||||
|
*/
|
||||||
|
public static Map<String, String> queryStringToMap(String queryString)
|
||||||
|
{
|
||||||
|
Map<String, String> result = new HashMap<String, String>();
|
||||||
|
if (queryString != null && queryString.length() > 0)
|
||||||
|
{
|
||||||
|
for (String param : queryString.split(PARAM_SEPARATOR))
|
||||||
|
{
|
||||||
|
String pair[] = param.split(PAIR_SEPARATOR);
|
||||||
|
String key = formURLDecode(pair[0]);
|
||||||
|
String value = pair.length > 1 ? formURLDecode(pair[1]) : EMPTY_STRING;
|
||||||
|
result.put(key, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private static final class EncodingRule
|
private static final class EncodingRule
|
||||||
{
|
{
|
||||||
private final String ch;
|
private final String ch;
|
||||||
|
|||||||
Reference in new issue
Block a user