Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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();
  }
});
like image 636
Nick Fortescue Avatar asked Jan 23 '23 09:01

Nick Fortescue


1 Answers

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);
like image 88
Nick Fortescue Avatar answered Jan 29 '23 21:01

Nick Fortescue