private static void addQueryString(final Request request, final HttpRequestPacket requestPacket) { final FluentStringsMap map = request.getQueryParams(); if (isNonEmpty(map)) { StringBuilder sb = new StringBuilder(128); for (final Map.Entry<String, List<String>> entry : map.entrySet()) { final String name = entry.getKey(); final List<String> values = entry.getValue(); if (isNonEmpty(values)) { try { for (int i = 0, len = values.size(); i < len; i++) { final String value = values.get(i); if (isNonEmpty(value)) { sb.append(URLEncoder.encode(name, "UTF-8")) .append('=') .append(URLEncoder.encode(values.get(i), "UTF-8")) .append('&'); } else { sb.append(URLEncoder.encode(name, "UTF-8")).append('&'); } } } catch (UnsupportedEncodingException ignored) { } } } sb.setLength(sb.length() - 1); String queryString = sb.toString(); requestPacket.setQueryString(queryString); } }