java中怎么使用HTTP代理。
以下代碼主要圍繞第一次接觸HTTP代理IP的java新手來寫。
直接把下面示例代碼中的代理API,替換成你后臺(tái)生成的代理API鏈接,就可以跑起來了。(步驟注釋清晰)
以下只是一個(gè)示例代碼,是一個(gè)基礎(chǔ)的演示,具體的代碼還是要根據(jù)你業(yè)務(wù)的實(shí)際情況去寫的。
示例代碼中的HTTP代理IP,我使用的是華益云的HTTP代理,注冊就白嫖1萬個(gè)高匿爬蟲IP,有效期是一年,對(duì)于調(diào)試代碼來說這個(gè)時(shí)間是非常的友好。
打開代理API,獲取里面的IP,使用IP訪問目標(biāo)網(wǎng)站,其實(shí)代碼中就是執(zhí)行這個(gè)過程而已,然后加了幾個(gè)錯(cuò)誤判斷有助于代碼的穩(wěn)定運(yùn)行。(步驟注釋清晰)
示例代碼demo中同款HTTP代理API-點(diǎn)我免費(fèi)領(lǐng)取10000個(gè)高匿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) {
// 發(fā)送給服務(wù)器的標(biāo)識(shí)
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&";
// 請(qǐng)求代理url,獲取代理ip
ArrayList outPutProxy = getProxy(proxyUrl, userAgent);
if (outPutProxy.size() == 0){
// 沒有獲取到代理
return;
}
// 目標(biāo)請(qǐng)求網(wǎng)站
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){
// 如果發(fā)現(xiàn)沒有代理了,就去獲取下。
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!用戶名或密碼錯(cuò)誤","success":false}
if (proxyIps.indexOf("{") > -1){
throw new RuntimeException("[錯(cuò)誤]"+proxyIps);
}
String[] splitedString = proxyIps.split("\n");
for (int i=0; i
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
JAVA
+關(guān)注
關(guān)注
20文章
3001瀏覽量
116422 -
HTTP
+關(guān)注
關(guān)注
0文章
537瀏覽量
35350 -
代碼
+關(guān)注
關(guān)注
30文章
4968瀏覽量
73960
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
java的動(dòng)態(tài)代理機(jī)制和作用
的我們的功能,我們更需要學(xué)習(xí)的是其底層是怎么樣的一個(gè)原理,而AOP的原理就是java的動(dòng)態(tài)代理機(jī)制,所以本篇隨筆就是對(duì)java的動(dòng)態(tài)機(jī)制進(jìn)行一個(gè)回顧。 在java的動(dòng)態(tài)
發(fā)表于 09-27 14:37
?0次下載
java動(dòng)態(tài)代理分析
定義:為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問。 動(dòng)態(tài)代理使用 java動(dòng)態(tài)代理機(jī)制以巧妙的方式實(shí)現(xiàn)了代理模式的設(shè)計(jì)理念。
發(fā)表于 09-27 15:14
?0次下載
java的動(dòng)態(tài)代理
代理模式是常用的java設(shè)計(jì)模式,他的特征是代理類與委托類有同樣的接口,代理類主要負(fù)責(zé)為委托類預(yù)處理消息、過濾消息、把消息轉(zhuǎn)發(fā)給委托類,以及事后處理消息等。
發(fā)表于 03-12 14:12
?0次下載
python代碼中使用HTTP代理IP,demo注釋清晰
如何再python代碼中使用HTTP代理IP。 以下代碼主要圍繞第一次接觸HTTP代理IP的python新手來寫。(步驟注釋清晰) 直接把下面示例代碼
python代碼中如何使用HTTP代理
華益云HTTP代理API有效期是一年,也就是說一年內(nèi)這1萬IP用完就沒了,如果你一年都用不完那到時(shí)候剩余IP才會(huì)被清零,對(duì)于調(diào)試代碼來說時(shí)間充足靈活。
python代碼中如何使用HTTP代理
HTTP代理就是介于瀏覽器和web服務(wù)器之間的一臺(tái)服務(wù)器,連接代理后,瀏覽器不再直接向web服務(wù)器取回網(wǎng)頁,而是向代理服務(wù)器發(fā)出request信號(hào),
http代理的作用如下所示
經(jīng)常使用網(wǎng)絡(luò)的人可能會(huì)常常聽到這樣的一個(gè)詞:http代理。那么它真正的作用很多人都是模棱兩可的,在這里給大家普及一下在我們大部分人的網(wǎng)絡(luò)活動(dòng)中,http是比較常見的網(wǎng)絡(luò)協(xié)議,因而
發(fā)表于 09-15 13:00
?899次閱讀
java中怎么使用HTTP代理
評(píng)論