Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误与异常

Java 多线程

Java 同步

Java 网络编程

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 其他

Java APIs 与框架

Java 类引用

Java 有用资源

Java - URL openConnection(Proxy proxy) 方法



描述

Java URL openConnection() 方法返回一个 URLConnection 实例,该实例表示与 URL 引用的远程对象建立的连接,类似于 openConnection(),只是连接将通过指定的代理进行;不支持代理的协议处理程序将忽略代理参数并建立正常的连接。调用此方法会优先使用系统默认的 ProxySelector 设置。

声明

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

public URLConnection openConnection(Proxy proxy)

参数

返回值

一个连接到 URL 的 URLConnection。

异常

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

SecurityException − 如果存在安全管理器并且调用者无权连接到代理。

IllegalArgumentException − 如果代理为 null 或代理类型错误,则会抛出此异常。

UnsupportedOperationException − 如果实现协议处理程序的子类不支持此方法。

示例 1

以下示例演示了使用 Java URL openConnection(Proxy proxy) 方法处理具有 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.Proxy;
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(Proxy.NO_PROXY);
         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(Proxy) 方法处理有效 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.Proxy;
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(Proxy.NO_PROXY);
         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(Proxy) 方法处理具有 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.Proxy;
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(Proxy.NO_PROXY);
         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
广告