Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤和異常

Java 多執行緒

Java 同步

Java 網路

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java API 和框架

Java 類參考

Java 有用資源

Java - setURLStreamHandlerFactory 方法 (URLStreamHandlerFactory)



描述

Java URL setURLStreamHandlerFactory(URLStreamHandlerFactory) 方法設定應用程式的 URLStreamHandlerFactory。此方法在給定的 Java 虛擬機器中最多可以呼叫一次。URLStreamHandlerFactory 例項用於從協議名稱構造流協議處理程式。如果存在安全管理器,則此方法首先呼叫安全管理器的 checkSetFactory 方法以確保允許操作。這可能導致 SecurityException。

宣告

以下是 java.net.URL.setURLStreamHandlerFactory(URLStreamHandlerFactory) 方法的宣告

public static void setURLStreamHandlerFactory(URLStreamHandlerFactory fac)

引數

fac - 所需的工廠。

返回值

異常

Error - 如果應用程式已設定工廠。

SecurityException - 如果存在安全管理器並且其 checkSetFactory 方法不允許操作。

示例 1

以下示例演示瞭如何使用 Java URLConnection setURLStreamHandlerFactory() 方法來處理使用 https 協議的有效 url。在此示例中,我們正在建立 URL 類的例項。使用 url.openConnection() 方法,我們獲取 URLConnection 例項。使用 setURLStreamHandlerFactory() 方法,我們將 null 設定為 contentHandlerFactory 以檢視影響,然後使用 getInputStream() 獲取網站主頁的內容並打印出來 -

package com.tutorialspoint;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class UrlConnectionDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("https://tutorialspoint.tw/index.htm?language=en#j2se");
         URLConnection.setContentHandlerFactory(null);
         URLConnection urlConnection = url.openConnection();

         BufferedReader in = new BufferedReader(
            new InputStreamReader(urlConnection.getInputStream()));
         String content = "";
         String current;
         while((current = in.readLine()) != null) {
            content += current;
         }
         System.out.println(content);
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

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

輸出

<!DOCTYPE html><html lang="en"><head>	<title>Online Tutorials, Courses, and eBooks ....</body></html>

示例 2

以下示例演示瞭如何使用 Java URLConnection setURLStreamHandlerFactory() 方法來處理使用 http 協議的有效 url。在此示例中,我們正在建立 URL 類的例項。使用 url.openConnection() 方法,我們獲取 URLConnection 例項。使用 setURLStreamHandlerFactory() 方法,我們將 null 設定為 contentHandlerFactory 以檢視影響,然後使用 getInputStream() 獲取網站主頁的內容並打印出來 -

package com.tutorialspoint;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class UrlConnectionDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("https://tutorialspoint.tw/index.htm?language=en#j2se");

         URLConnection urlConnection = url.openConnection();
         URLConnection.setContentHandlerFactory(null);
         BufferedReader in = new BufferedReader(
            new InputStreamReader(urlConnection.getInputStream()));
         String content = "";
         String current;
         while((current = in.readLine()) != null) {
            content += current;
         }
         System.out.println(content);
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

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

輸出

<!DOCTYPE html><html lang="en"><head>	<title>Online Tutorials, Courses, and eBooks ....</body></html>

示例 3

以下示例演示瞭如何使用 Java URLConnection setURLStreamHandlerFactory() 方法來處理 google 的有效 url,該 url 使用 http 協議。在此示例中,我們正在建立 URL 類的例項。使用 url.openConnection() 方法,我們獲取 URLConnection 例項。使用 setURLStreamHandlerFactory() 方法,我們將 null 設定為 contentHandlerFactory 以檢視影響,然後使用 getInputStream() 獲取網站主頁的內容並打印出來 -

package com.tutorialspoint;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class UrlConnectionDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("http://www.google.com");
         URLConnection.setContentHandlerFactory(null);
         URLConnection urlConnection = url.openConnection();

         BufferedReader in = new BufferedReader(
            new InputStreamReader(urlConnection.getInputStream()));
         String content = "";
         String current;
         while((current = in.readLine()) != null) {
            content += current;
         }
         System.out.println(content);
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

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

輸出

<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" ....</body></html>
java_urlconnection.htm
廣告