4

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

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

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

1 回答 1

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);
于 2009-07-23T12:17:51.873 回答