如何配置apache httpcore 4以使用代理?

时间:2009-07-23 10:08:17

标签: java http proxy apache-httpclient-4.x

我正在尝试使用最新的(4.0.1)Apache http核心组件库。但是,我的网络浏览器通过代理 - 假设它是myproxy.com:9191。有人可以提供一些示例代码来获取简单的http获取将其用作代理吗?

我尝试在代码开头添加以下内容,但没有任何乐趣:

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();
  }
});

1 个答案:

答案 0 :(得分:9)

如果没有答案,这就是我发现的。

首先,对于这类事情,您不仅要使用http核心库,还要使用httpclient,请确保从下载页面下载两者。

其次,使用此代码:

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);