[問題] 如何切換 proxy 來建立 URLConnection?
我現在在寫一個程式,需不斷送出 URL request 到遠端 server,
但因為不能一直使用相同 IP,所以透過多個不同 proxy 來完成。
(可以想成灌票程式的運作方式,但我單純是要抓網頁資料,並非惡意軟體!)
我是利用 System.getProperties().put 來設定 proxy 的 IP、port 等資訊,
現在碰到的問題是:無法切換 proxy!
也就是當我先連至 A 再連到 server,第二次想透過 B 連到 server,
但我去檢查我本機端送出的封包,都是送到 A 這個 proxy!
以下是我的部份程式碼。
public static void main(String args[]){
...
URL test = new URL("某網頁")
parserA(test);
parserB(test);
...
}
public static String parserA(URL u){
System.getProperties().put("proxySet", "true");
System.getProperties().put("proxyHost", "proxy A 的 IP");
System.getProperties().put("proxyPort", "proxy A 的 port");
URLConnection URLConn = u.openConnection();
...
}
public static String parserB(URL u){
System.getProperties().put("proxySet", "true");
System.getProperties().put("proxyHost", "proxy B 的 IP");
System.getProperties().put("proxyPort", "proxy B 的 port");
URLConnection URLConn = u.openConnection();
...
}
我有嘗試過 System.getProperties().clear() 或是 System.getProperties().remove()
想將 proxySet、proxyHost、proxyPort 的資訊清除,但程式依然只能連到 proxy A。
另外我測試過,若丟兩個位於不同 server 的 URL 到 parserA 和 parserB,
那麼可以成功地分別使用兩個 proxy 來送出 URL request!
但若是位於相同網域之下的 URL,一律只能使用第一個 proxy!
試圖在網路上找尋相關解答都沒有收穫,才到板上請求協助,
板友們若有任何解答或是可能的方法還請不吝指教,
給我關鍵字我再去做進一步的研究也沒問題,先說聲謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.169.132
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 4 篇):