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.com/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.com/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
广告