[問題] 如何切換 proxy 來建立 URLConnection?

看板java作者 (街酷)時間16年前 (2009/05/08 00:21), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/4 (看更多)
我現在在寫一個程式,需不斷送出 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
文章代碼(AID): #1A0mgD8M (java)
討論串 (同標題文章)
文章代碼(AID): #1A0mgD8M (java)