2013-08-26 133 views
1

我寫下面的代碼來訪問一個網頁,並在Ubuntu中運行。如何通過代理連接到互聯網?

我該如何解決這個問題?我已經嘗試了來自所有互聯網的建議修復,但仍然無法找出解決方案。

+0

將其更改爲http://www.example.com/index.html,它應該可以工作 – Satya

回答

2

A 407響應表示「需要代理驗證」,如here所述。

現在您似乎在系統屬性中設置了代理用戶和密碼,但它顯然不起作用。我能想到的一對夫婦解釋的:

  • 你可能會來不及設置屬性。這些屬性在初始化時由默認ProxySelectorAuthenticator讀取。如果你把它們設置得太晚,那麼它們將不被尊重。嘗試使用-D...選項設置屬性。

  • 您可能會使用錯誤的代理用戶名和密碼。

  • 代理服務器可能期望以不同於提供的形式的代理身份驗證詳細信息。查看失敗請求響應中的標題。應該有一個包含「挑戰」的「Proxy-Authenticate」標題。


如果這個方法行不通,另一種方法是通過編程實現並註冊自己的ProxySelectorAuthenticator類來實現的代理選擇和認證。


隨訪

我包括ProxyAuthenticator類,現在, 「java.net.ProtocolException:服務器重定向次數過多(20)」 被拋出。

不知何故,您的應用程序已進入重定向循環。

我還是不確定你是否足夠早地設置了代理屬性。

+0

@ user2699073 - 就像我在答案中告訴過你的。使用-D ...命令行選項。 (請閱讀'java'手冊條目,這裏有解釋。) –

+0

@ user2699073 - 嘗試使用Wireshark(或等價物)來查看HTTP請求和回覆中的內容。這應該告訴你,請求是否到了正確的位置,請求和回覆實際上包含了什麼,以及(對於回覆)你正在重定向的內容。 –