code: public static List <NameValuePair> parse (final URI uri, final String encoding) {
          final String query = uri.getRawQuery();
          if (query != null && query.length() > 0) {
              List<NameValuePair> result = new ArrayList<NameValuePair>();
              Scanner scanner = new Scanner(query);
              parse(result, scanner, encoding);
              return result;
          } else {
              return Collections.emptyList();
          }
      }
docs: Returns a list of {@link NameValuePair NameValuePairs} as built from the
  URI's query portion. For example, a URI of
  http://example.org/path/to/file?a=1&b=2&c=3 would return a list of three
  NameValuePairs, one for a=1, one for b=2, and one for c=3.
  <p>
  This is typically useful while deserializing an HTTP PUT.
  
  @param uri
  uri to parse
  @param encoding
  encoding to use while deserializing the query