我正在尝试使用最新的(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();
}
});
答案 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);