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 org.kodejava.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://localhost:8080/hello.jsp");
try {
// Set query string information for accessing the page using a
// simple string information.
method.setQueryString(URIUtil.encodeQuery("catid=10&page=1"));
client.executeMethod(method);
// Other cleaner alternative is to use the NameValuePair object to
// define the parameters for an HTTP GET method.
NameValuePair param1 = new NameValuePair("catid", URIUtil.encodeQuery("20"));
NameValuePair param2 = new NameValuePair("page", URIUtil.encodeQuery("2"));
NameValuePair[] params = new NameValuePair[]{param1, param2};
method.setQueryString(params);
client.executeMethod(method);
} catch (IOException e) {
e.printStackTrace();
} finally {
method.releaseConnection();
}
}
}
Maven Dependencies
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>