如何在java中使用HTTP代理

我正在编写一个连接到网站并检查一些代码的代码,比如爬虫。 但我需要通过代理连接并更改IP地址(因此它不会在服务器日志中显示客户端的IP)。

怎么能通过java完成?

您可以使用java系统属性来设置代理或将其作为命令行选项传递。

您可以在这里找到一些细节和样品。

例如:打开连接之前

System.setProperty("http.proxyHost", "myProxyServer.com"); System.setProperty("http.proxyPort", "80"); 

或者,您可以使用系统中配置的默认网络代理

 System.setProperty("java.net.useSystemProxies", "true"); 

从Java 1.5开始,您可以创建代理实例并将其传递给openConnection()方法。

 Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("123.0.0.1", 8080)); URL url = new URL("http://www.yahoo.com"); HttpURLConnection uc = (HttpURLConnection)url.openConnection(proxy); uc.connect(); 

或者像lisak建议的那样,您可以使用一些第三方库来更好地满足您的需求。

或者您也可以使用更适合您需求的HttpClient 。 查看文档,它简短而且非常有用。

 DefaultHttpClient httpclient = new DefaultHttpClient(); HttpHost proxy = new HttpHost("someproxy", 8080); httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);