如何在Java中使用HTTP代理
我正在编写一个连接到网站并检查一些代码的代码,例如爬虫。但是我需要通过代理连接并更改IP地址(因此它不会在服务器日志中显示客户端的IP)。
如何通过java完成此操作?
我正在编写一个连接到网站并检查一些代码的代码,例如爬虫。但是我需要通过代理连接并更改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);