Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络编程

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java API 和框架

Java 类引用

Java 有用资源

Java - URL openConnection() 方法及示例



描述

Java URL openConnection() 方法返回一个 URLConnection 实例,该实例表示与 URL 引用的远程对象的连接。每次调用此 URL 的协议处理程序的 URLStreamHandler.openConnection(URL) 方法时,都会创建一个新的 URLConnection 实例。当调用 URLConnection.connect() 方法时,URLConnection 实例建立实际的网络连接。对于 HTTP 协议,将返回一个 HttpURLConnection,对于 JAR,将返回一个 JarURLConnection。

声明

以下是 java.net.URL.openConnection() 方法的声明

public URLConnection openConnection()

参数

返回值

一个连接到 URL 的 URLConnection。

异常

IOException − 如果发生 I/O 异常。

示例 1

以下示例演示了如何使用 Java URL openConnection() 方法处理具有 https 协议的有效 url。在此示例中,我们创建了一个 URL 类的实例。现在使用 openConnection() 方法,我们获取了 URLConnection 对象。接下来,我们使用 URLConnection.getInputStream() 获取 url 指向的网站页面的内容,并打印相同的内容 -

package com.tutorialspoint;

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

public class UrlDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("https://tutorialspoint.com");
         URLConnection urlConnection = url.openConnection();
         HttpURLConnection connection = null;
         if(urlConnection instanceof HttpURLConnection) {
            connection = (HttpURLConnection) urlConnection;
         }else {
            System.out.println("Please enter an HTTP URL.");
            return;
         }

         BufferedReader in = new BufferedReader(
         new InputStreamReader(connection.getInputStream()));
         String urlString = "";
         String current;

         while((current = in.readLine()) != null) {
            urlString += current;
         }
         System.out.println(urlString);
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

让我们编译并运行上述程序,这将产生以下结果 -

输出

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

示例 2

以下示例演示了如何使用 Java URL openConnection() 方法处理有效 url。在此示例中,我们使用 http 协议创建了一个 URL 类的实例。现在使用 openConnection() 方法,我们获取了 URLConnection 对象。接下来,我们使用 URLConnection.getInputStream() 获取 url 指向的网站页面的内容,并打印相同的内容 -

package com.tutorialspoint;

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

public class UrlDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("http","www.tutorialspoint.com","/index.htm");
         URLConnection urlConnection = url.openConnection();
         HttpURLConnection connection = null;
         if(urlConnection instanceof HttpURLConnection) {
            connection = (HttpURLConnection) urlConnection;
         }else {
            System.out.println("Please enter an HTTP URL.");
            return;
         }

         BufferedReader in = new BufferedReader(
         new InputStreamReader(connection.getInputStream()));
         String urlString = "";
         String current;

         while((current = in.readLine()) != null) {
            urlString += current;
         }
         System.out.println(urlString);
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

让我们编译并运行上述程序,这将产生以下结果 -

输出

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

示例 3

以下示例演示了如何使用 Java URL openConnection() 方法处理具有 file 协议的有效 url。在此示例中,我们创建了一个 URL 类的实例。现在使用 openConnection() 方法,我们获取了 URLConnection 对象。接下来,我们使用 URLConnection.getInputStream() 获取 url 指向的网站页面的内容。由于协议不是 http 或 https,因此程序将打印一条消息 请输入 HTTP URL。 并终止,如下所示 -

package com.tutorialspoint;

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

public class UrlDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("file","www.tutorialspoint.com","/index.htm");
         URLConnection urlConnection = url.openConnection();
         HttpURLConnection connection = null;
         if(urlConnection instanceof HttpURLConnection) {
            connection = (HttpURLConnection) urlConnection;
         }else {
            System.out.println("Please enter an HTTP URL.");
            return;
         }

         BufferedReader in = new BufferedReader(
         new InputStreamReader(connection.getInputStream()));
         String urlString = "";
         String current;

         while((current = in.readLine()) != null) {
            urlString += current;
         }
         System.out.println(urlString);
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

让我们编译并运行上述程序,这将产生以下结果 -

输出

Please enter an HTTP URL.
java_url.htm
广告