java examples
Home Java Examples Resources Java Interview Questions
Brainpower SEO

How to add query string to HttpMethod?

To send query string information in HTTP GET command you either using passing a simple string or an array of NameValuePair object into the HttpMethod's setQueryString() method. We also need to encode the parameter values before passing it to the method.

package com.javacoderanch.example.commons.httpclient;

import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.util.URIUtil;
import org.apache.commons.httpclient.methods.GetMethod;

import java.io.IOException;

public class SendingQueryParameter {
    public static void main(String[] args) {
        HttpClient client = new HttpClient();
        HttpMethod method = new GetMethod("http://www.javacoderanch.org/browse.php");

        try {
            //
            // Set query string information for accessing the page using a
            // simple string information.
            //
            method.setQueryString(URIUtil.encodeQuery("catid=47&page=1"));

            //
            // Other cleaner alternative is to use the NameValuePair object to
            // define the parameters for a HTTP GET method.
            //
            NameValuePair param1 = new NameValuePair("catid", URIUtil.encodeQuery("47"));
            NameValuePair param2 = new NameValuePair("page", URIUtil.encodeQuery("1"));
            NameValuePair[] params = new NameValuePair[] {param1, param2};
            method.setQueryString(params);

            client.executeMethod(method);
            
        } catch (URIException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            method.releaseConnection();
        }
    }
}