我嘗試使用java加載網站通過代理鏈(多於一個)。 每個請求應該能夠使用另一個鏈。 這裏我第一次快速和骯髒的嘗試:如何通過代理鏈使用java.net.URL/URLConnection
// My proxies and there ports marked with pIP1 pPort1, pIP2 pPort2...
Socket socket = new Socket(pIP1, pPort1);
OutputStream out = socket.getOutputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String connectOverProxy1ToProxy2 = "CONNECT " + pIP2 + ":" + pPort2 + " HTTP/1.1\n\n";
String connectHost = "GET http://stackoverflow.com/ HTTP/1.1\n\n";
out.write((connectOverProxy1ToProxy2 + connectHost).getBytes());
out.flush();
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
out.close();
in.close();
作爲迴應,我recived這樣的:
HTTP/1.0 200 Connection established
Proxy-agent: tinyproxy/1.8.3
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Cache-Control: public, max-age=30
Expires: Mon, 08 Apr 2013 11:42:08 GMT
X-Frame-Options: SAMEORIGIN
Date: Mon, 08 Apr 2013 11:41:36 GMT
Last-Modified: Mon, 08 Apr 2013 11:41:08 GMT
Vary: *
Content-Length: 182825
<!DOCTYPE html>
<html>
[..]
</html>
讓我們來到這個問題。 現在我嘗試使用URL/URLConnection加載頁面,以使用java包的完整處理和功能性。有沒有一種方法使用URL/URLConnection與代理鏈而不是單個代理?
感謝您的幫助......
'HttpUrlConnection'類通過使用[代理相關係統設置]支持代理(http://docs.oracle.com/javase/7/docs/api/java/net/doc-files/net-properties的.html#代理)。我假設只有一個代理服務器或多個代理服務器並不重要,只要您能夠正確配置第一個代理服務器或多個代理服務器即可。 – mthmulders 2013-04-08 12:15:14
好吧,應該工作,但我需要爲每個請求和許多請求並行建立一個新的鏈的可能性。我解決了這個問題。感謝您的迴應。 – Sebastian 2013-04-08 12:22:54