+ // TODO properly deal with charset?
+ Charset encoding = StandardCharsets.UTF_8;
+ Map<String, String[]> parameters = httpServletRequest.getParameterMap();
+ StringJoiner sb = new StringJoiner("&");
+ for (String key : parameters.keySet()) {
+ for (String value : parameters.get(key)) {
+ String pair = URLEncoder.encode(key, encoding) + '=' + URLEncoder.encode(value, encoding);
+ sb.add(pair);
+ }
+ }
+ return URI.create(httpServletRequest.getRequestURI() + (sb.length() != 0 ? '?' + sb.toString() : ""));