Add parameters stored in the Map to the uri string in Java

Description

The following code shows how to add parameters stored in the Map to the uri string.

Example


//from   w  w w  .j  a  v  a 2 s . c  om
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Main {

  public static void main(String[] argv) {
    Map<String, String> parameters = new HashMap<String, String>();
    parameters.put("q", "java2s.com");

    System.out.println(parameterize("http://abc.com", parameters));
  }

  /**
   * Add parameters stored in the Map to the uri string. Map can contain
   * Object values which will be converted to the string, or Object arrays,
   * which will be treated as multivalue attributes.
   * 
   * @param uri
   *            The uri to add parameters into
   * @param parameters
   *            The map containing parameters to be added
   * @return The uri with added parameters
   */
  public static String parameterize(String uri, Map parameters) {
    if (parameters.size() == 0) {
      return uri;
    }

    StringBuffer buffer = new StringBuffer(uri);
    if (uri.indexOf('?') == -1) {
      buffer.append('?');
    } else {
      buffer.append('&');
    }

    for (Iterator i = parameters.entrySet().iterator(); i.hasNext();) {
      Map.Entry entry = (Map.Entry) i.next();
      if (entry.getValue().getClass().isArray()) {
        Object[] value = (Object[]) entry.getValue();
        for (int j = 0; j < value.length; j++) {
          if (j > 0) {
            buffer.append('&');
          }
          buffer.append(entry.getKey());
          buffer.append('=');
          buffer.append(value[j]);
        }
      } else {
        buffer.append(entry.getKey());
        buffer.append('=');
        buffer.append(entry.getValue());
      }
      if (i.hasNext()) {
        buffer.append('&');
      }
    }
    return buffer.toString();
  }

}
/*
 * 
 * Derby - Class org.apache.derby.iapi.util.PropertyUtil
 * 
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements. See the NOTICE file distributed with this
 * work for additional information regarding copyright ownership. The ASF
 * licenses this file to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

The code above generates the following result.





















Home »
  Java Tutorial »
    Network »




NetworkInterface
URI
URL
HTTP
HTTP Read
IP
Socket
UDP
URL Encode