Apache Common Java

import org.apache.commons.httpclient.URI;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.HostConfiguration;
public class UsingHttpClientInsideThread {
  public static void main(String args[]) throws Exception {
    HttpClient client = new HttpClient();
    client.getParams().setParameter("http.useragent", "Test Client");
    HostConfiguration host = new HostConfiguration();
    host.setHost(new URI("http://localhost:8080", true));
    // first Get a big file
    MethodThread bigDataThread =  new MethodThread(client, host, "/big_movie.wmv");
    bigDataThread.start();
    // next try and get a small file
    MethodThread normalThread = new MethodThread(client, host, "/");
    normalThread.start();
  }
}
class MethodThread extends Thread {
  private HttpClient client;
  private HostConfiguration host;
  private GetMethod method;
  public MethodThread(HttpClient client, HostConfiguration host, String resource) {
    this.client = client;
    this.host = host;
    this.method = new GetMethod(resource);
  }
  public void run() {
    System.err.println("Connecting to: " + host);
    try{
      client.executeMethod(host, method);
      method.getResponseBodyAsStream();
    } catch(Exception e) {
      System.err.println(e);
    } finally {
      method.releaseConnection();
    }
  }
}