首頁 > Java > java教程 > 如何確保 HttpURLConnection 使用代理並處理驗證?

如何確保 HttpURLConnection 使用代理並處理驗證?

Susan Sarandon
發布: 2024-11-08 15:25:01
原創
977 人瀏覽過

How to Ensure HttpURLConnection Utilizes a Proxy and Handles Authentication?

為HttpURLConnection 建立代理連接

當嘗試確定HttpURLConnection 是否正在使用代理時,以下程式碼可能會錯誤地傳回false:

conn = new URL(urlString).openConnection();
System.out.println("Proxy? " + conn.usingProxy());
登入後複製

儘管透過代理伺服器連接,但仍會發生此行為。 Java 虛擬機器 (JVM) 通常會從作業系統設定中擷取代理資訊。但是,在某些情況下,JVM 可能不知道代理配置。

代理和 JVM 代理設定

為了確保 HttpURLConnection 使用適當的代理,有必要明確提供代理資訊。這可以透過建構一個Proxy 實例並將其傳遞給openConnection(proxy) 方法來實現:

//Proxy instance, proxy ip = 10.0.0.1 with port 8080
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("10.0.0.1", 8080));
conn = new URL(urlString).openConnection(proxy);
登入後複製

驗證代理連接

如果代理需要身份驗證,則HttpURLConnection 將回應407 回應代碼。要解決此問題,可以如下設定身份驗證器:

Authenticator authenticator = new Authenticator() {

    public PasswordAuthentication getPasswordAuthentication() {
        return (new PasswordAuthentication("user",
                "password".toCharArray()));
    }
};
Authenticator.setDefault(authenticator);
登入後複製

以上是如何確保 HttpURLConnection 使用代理並處理驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板