Nick Fortescue
Nick Fortescue

Reputation: 44203

How do I configure apache httpcore 4 to use a proxy?

I'm trying to use the latest (4.0.1) Apache http core components library. However, my web browser goes through a proxy - suppose it is myproxy.com:9191. Could someone provide some sample code for getting a simple http get to use this as a proxy?

I've tried adding the following at the beginning of my code, but had no joy:

ProxySelector.setDefault(new ProxySelector() {
  public List<Proxy> select(URI uri) {
    Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("myproxy.com", 9191);
    return Arrays.asList(new Proxy[]{proxy)});
  }
  public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {
    ioe.printStackTrace();
  }
});

Upvotes: 4

Views: 7479

Answers (1)

Nick Fortescue
Nick Fortescue

Reputation: 44203

In the absence of an answer, here's what I found out.

Firstly, for this sort of thing, you don't just want to use the http core library, you want to use httpclient as well, make sure you download both from the download page.

Secondly, use this code:

DefaultHttpClient httpclient = new DefaultHttpClient();
HttpHost proxy = new HttpHost("myproxy.com", 9191);
httpclient.getCredentialsProvider().setCredentials(
  new AuthScope(PROXY, PROXY_PORT),
  new UsernamePasswordCredentials("username", "password"));
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);

Upvotes: 9

Related Questions