我想使用最新版本(4.0.1)的Apache HTTP核心组件库。然而,我的Web浏览器通过代理 - 假设它是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();
  }
});
有帮助吗?

解决方案

在没有答案的,这里是我发现了什么。

首先,对于这样的事情,你不只是想使用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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top