Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤與異常

Java 多執行緒

Java 同步

Java 網路程式設計

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java APIs 與框架

Java 類引用

Java 有用資源

Java - HttpURLConnection setAuthenticator() 方法



Java HttpURLConnection setAuthenticator() 方法允許為 HttpURLConnection 提供一個身份驗證器,當透過 HTTP 協議請求身份驗證時使用。如果沒有提供身份驗證器,將使用預設身份驗證器。

宣告

以下是 java.net.HttpURLConnection.setAuthenticator() 方法的宣告

public void setAuthenticator(Authenticator auth)

引數

auth − 此 HttpURLConnection 應使用的身份驗證器。

返回值

異常

UnsupportedOperationException −如果底層實現不支援設定身份驗證器。

IllegalStateException −如果 URLConnection 已連線。

NullPointerException −如果提供的 auth 為 null。

示例 1

以下示例演示了針對具有 https 協議的有效 url 使用 Java HttpURLConnection setAuthenticator() 方法。在此示例中,我們正在建立一個 URL 類的例項。使用 url.openConnection() 方法,我們獲取 HttpURLConnection 例項。使用 setAuthenticator(),我們設定一個預設身份驗證器。由於預設身份驗證器為 null,程式碼將丟擲空指標異常,如下所示:

package com.tutorialspoint;

import java.io.IOException;
import java.net.Authenticator;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpUrlConnectionDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("https://tutorialspoint.tw/index.htm?language=en#j2se");
         HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
         urlConnection.setConnectTimeout(1000);  
         urlConnection.setAuthenticator(Authenticator.getDefault());
         urlConnection.connect();  
         System.out.println("Connected.");  
         
         urlConnection.disconnect();  
         System.out.println("Disconnected.");  
        
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

讓我們編譯並執行上述程式,這將產生以下結果:

輸出

Exception in thread "main" java.lang.NullPointerException
        at java.base/java.util.Objects.requireNonNull(Objects.java:233)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.setAuthenticator(HttpURLConnection.java:541)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.setAuthenticator(HttpsURLConnectionImpl.java:503)
        at com.tutorialspoint.HttpUrlConnectionDemo.main(HttpUrlConnectionDemo.java:14)

示例 2

以下示例演示了針對具有 https 協議的有效 url 使用 Java HttpURLConnection setAuthenticator() 方法。在此示例中,我們正在建立一個 URL 類的例項。使用 url.openConnection() 方法,我們獲取 HttpURLConnection 例項。使用 setAuthenticator(),我們設定 null。由於身份驗證器為 null,程式碼將丟擲空指標異常,如下所示:

package com.tutorialspoint;

import java.io.IOException;
import java.net.Authenticator;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpUrlConnectionDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("https://tutorialspoint.tw/index.htm?language=en#j2se");
         HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
         urlConnection.setConnectTimeout(1000);  
         urlConnection.setAuthenticator(null);
         urlConnection.connect();  
         System.out.println("Connected.");  
         
         urlConnection.disconnect();  
         System.out.println("Disconnected.");  
        
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

讓我們編譯並執行上述程式,這將產生以下結果:

輸出

Exception in thread "main" java.lang.NullPointerException
        at java.base/java.util.Objects.requireNonNull(Objects.java:233)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.setAuthenticator(HttpURLConnection.java:541)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.setAuthenticator(HttpsURLConnectionImpl.java:503)
        at com.tutorialspoint.HttpUrlConnectionDemo.main(HttpUrlConnectionDemo.java:14)
java_httpurlconnection.htm
廣告
© . All rights reserved.