code: public QueryStringBuilder addParameters(final String url)
     {
        String temp = extractQuery(url);
        if (temp != null)
        {
           temp = decodeHTMLAmpersands(temp);
           int index = 0;
           while ((index = temp.indexOf('&')) >= 0 || !temp.isEmpty())
           {
              String pair = temp;
              if (index >= 0)
              {
                 pair = temp.substring(0, index);
                 temp = temp.substring(index);
                 if (!temp.isEmpty())
                    temp = temp.substring(1);
              }
              else
                 temp = "";
  
              String name;
              String value;
              int pos = pair.indexOf('=');
              // for "n=", the value is "", for "n", the value is null
              if (pos == -1)
              {
                 name = pair;
                 value = null;
              }
              else
              {
                 name = pair.substring(0, pos);
                 value = pair.substring(pos + 1, pair.length());
              }
  
              List<String> list = parameters.get(name);
              if (list == null)
              {
                 list = new ArrayList<String>();
                 parameters.put(name, list);
              }
              list.add(value);
           }
        }
        return this;
     }
docs: Add parameters from the given URL. If a '?' character is encountered in the URL, the any characters up to and
  including the first '?' will be ignored. If a parameter already exists, append new values to the existing list of
  values for that parameter.
  <p>
  <b>Note:</b> This method assumes that the given string is already URL encoded.