/** * Appends new query parameter to the url. */ public Builder queryParam(final String name, final String value) { url.append(hasParams ? '&' : '?'); hasParams = true; url.append(encodeQueryParam(name, encoding)); if ((value != null) && (value.length() > 0)) { url.append('='); url.append(encodeQueryParam(value, encoding)); } return this; }
/** * Checks if some parameter is in GET parameters. */ public boolean isGetParameter(final HttpServletRequest request, String name) { name = URLCoder.encodeQueryParam(name) + '='; String query = request.getQueryString(); String[] nameValuePairs = StringUtil.splitc(query, '&'); for (String nameValuePair : nameValuePairs) { if (nameValuePair.startsWith(name)) { return true; } } return false; }
@Test void testEncodeQueryParam() { assertEquals("foobar", encodeQueryParam("foobar")); assertEquals("foo%20bar", encodeQueryParam("foo bar")); assertEquals("foobar/+", encodeQuery("foobar/+")); assertEquals("foo%26bar", encodeQueryParam("foo&bar")); assertEquals("foo%3Dbar", encodeQueryParam("foo=bar")); assertEquals("foo@bar", encodeQueryParam("foo@bar")); assertEquals("foo%3Done%26bar%3Dtwo", encodeQueryParam("foo=one&bar=two")); }
for (Map.Entry<String, ?> entry : queryMap) { String key = entry.getKey(); key = URLCoder.encodeQueryParam(key, encoding); query.append('='); String valueString = URLCoder.encodeQueryParam(value.toString(), encoding); query.append(valueString);
@Test void testQuerySimple() throws UnsupportedEncodingException { assertEquals("%C5%BD%C4%8C%C4%86", encodeQueryParam("ŽČĆ")); // utf8 assertEquals("@-._~%2B%20", encodeQueryParam("@-._~+ ")); assertEquals("http://jodd.org/download?param=I%20love%20Jodd+Java", URLCoder.encodeHttpUrl("http://jodd.org/download?param=I love Jodd+Java")); assertEquals("http://jodd.org?param=java&jodd", URLCoder.encodeHttpUrl("http://jodd.org?param=java&jodd")); // this is ambiguous }
/** * Appends new query parameter to the url. */ public Builder queryParam(final String name, final String value) { url.append(hasParams ? '&' : '?'); hasParams = true; url.append(encodeQueryParam(name, encoding)); if ((value != null) && (value.length() > 0)) { url.append('='); url.append(encodeQueryParam(value, encoding)); } return this; }
for (Map.Entry<String, ?> entry : queryMap) { String key = entry.getKey(); key = URLCoder.encodeQueryParam(key, encoding); query.append('='); String valueString = URLCoder.encodeQueryParam(value.toString(), encoding); query.append(valueString);