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.tw");
         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
廣告