java中怎么使用HTTP代理。
以下代码主要围绕第一次接触HTTP代理IP的java新手来写。
直接把下面示例代码中的代理API,替换成你后台生成的代理API链接,就可以跑起来了。(步骤注释清晰)
以下只是一个示例代码,是一个基础的演示,具体的代码还是要根据你业务的实际情况去写的。
示例代码中的HTTP代理IP,我使用的是华益云的HTTP代理,注册就白嫖1万个高匿爬虫IP,有效期是一年,对于调试代码来说这个时间是非常的友好。
打开代理API,获取里面的IP,使用IP访问目标网站,其实代码中就是执行这个过程而已,然后加了几个错误判断有助于代码的稳定运行。(步骤注释清晰)
示例代码demo中同款HTTP代理API-点我免费领取10000个高匿IP
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.URL;
import java.util.ArrayList;
import java.net.Proxy;
class ProxyInfo{
private String host;
private int port;
public ProxyInfo(String host, int port){
this.host = host;
this.port = port;
}
public String getHost(){
return host;
}
public int getPort(){
return port;
}
}
class ProxyUtil{
public static void main(String[] args) {
// 发送给服务器的标识
String userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/532.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36";
// 代理api(这里我推荐使用www.9vps.com华益云的HTTP代理API,注册就白嫖1万IP)
String proxyUrl = "http://http.9vps.com/getip.asp?username=166xxxx6597&pwd=xxxxbaa59ce237dff65134984b9cxxxx&geshi=1&fenge=1&fengefu=&Contenttype=1&getnum=20&setcity=&operate=all&";
// 请求代理url,获取代理ip
ArrayList outPutProxy = getProxy(proxyUrl, userAgent);
if (outPutProxy.size() == 0){
// 没有获取到代理
return;
}
// 目标请求网站
String url = "https://www.qq.com/";
for (int i=0; i<3; i++){
// 最多尝试三次
try{
ProxyInfo px =outPutProxy.remove(0);
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(px.getHost(), px.getPort()));
String out = doReqWithProxyWrapper(url, userAgent, proxy);
System.out.println(out);
break;
}catch(Exception e){
e.printStackTrace();
if (outPutProxy.size() == 0){
// 如果发现没有代理了,就去获取下。
outPutProxy = getProxy(proxyUrl, userAgent);
}
}
}
//System.out.println(out);
}
public static String doReqWithProxyWrapper(String url,String userAgent,Proxy proxy) throws IOException{
return requestGet(url, userAgent, proxy);
}
public static ArrayList getProxy(String proxyUrl, String userAgent){
//String proxyUrl = "http://http.9vps.com/getip.asp?username=166xxxx6597&pwd=xxxxbaa59ce237dff65134984b9cxxxx&geshi=1&fenge=1&fengefu=&Contenttype=1&getnum=20&setcity=&operate=all&";
String proxyIps;
ArrayList outPutProxy = new ArrayList();
try {
proxyIps = requestGet(proxyUrl, userAgent, null);
System.out.println(proxyIps);
// {"code":3002,"data":[],"msg":"error!用户名或密码错误","success":false}
if (proxyIps.indexOf("{") > -1){
throw new RuntimeException("[错误]"+proxyIps);
}
String[] splitedString = proxyIps.split("\n");
for (int i=0; i
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
JAVA
+关注
关注
19文章
2904浏览量
102999 -
HTTP
+关注
关注
0文章
467浏览量
30322 -
代码
+关注
关注
30文章
4556浏览量
66807
发布评论请先 登录
相关推荐
http代理的分类
HTTP代理按安全性怎么分呢?许多人之所以会选择使用HTTP代理上网主要是为了保护自己的个人信息安全,不希望真实的IP地址在链接网络的时候被服务器记录,
发表于 12-20 17:25
java的动态代理
代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。
发表于 03-12 14:12
•0次下载
python代码中如何使用HTTP代理
HTTP代理就是介于浏览器和web服务器之间的一台服务器,连接代理后,浏览器不再直接向web服务器取回网页,而是向代理服务器发出request信号,
http代理的作用如下所示
经常使用网络的人可能会常常听到这样的一个词:http代理。那么它真正的作用很多人都是模棱两可的,在这里给大家普及一下在我们大部分人的网络活动中,http是比较常见的网络协议,因而http
发表于 09-15 13:00
•345次阅读
评论