鴻蒙OS URLStreamHandler

2022-06-15 17:52 更新

URLStreamHandler

java.lang.Object

|---java.net.URLStreamHandler

public abstract class URLStreamHandler
extends Object

抽象類 URLStreamHandler 是所有流協(xié)議處理程序的公共超類。 流協(xié)議處理程序知道如何為特定協(xié)議類型(例如 http 或 https)建立連接。

在大多數(shù)情況下,URLStreamHandler 子類的實(shí)例不是由應(yīng)用程序直接創(chuàng)建的。 相反,在構(gòu)造 URL 時(shí)第一次遇到協(xié)議名稱時(shí),會(huì)自動(dòng)加載適當(dāng)?shù)牧鲄f(xié)議處理程序。

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù) 描述
URLStreamHandler()

方法總結(jié)

修飾符和類型 方法 描述
protected boolean equals(URL u1, URL u2) 提供默認(rèn)的 equals 計(jì)算。
protected int getDefaultPort() 返回此處理程序解析的 URL 的默認(rèn)端口。
protected InetAddress getHostAddress(URL u) 獲取我們主機(jī)的 IP 地址。
protected int hashCode(URL u) 提供默認(rèn)的哈希計(jì)算。
protected boolean hostsEqual(URL u1, URL u2) 比較兩個(gè) URL 的主機(jī)組件。
protected abstract URLConnection openConnection(URL u) 打開與 URL 參數(shù)引用的對(duì)象的連接。
protected URLConnection openConnection(URL u, Proxy p) 與 openConnection(URL) 相同,只是連接將通過指定的代理進(jìn)行; 不支持代理的協(xié)議處理程序?qū)⒑雎源韰?shù)并建立正常連接。
protected void parseURL(URL u, String spec, int start, int limit) 將 URL 的字符串表示形式解析為 URL 對(duì)象。
protected boolean sameFile(URL u1, URL u2) 比較兩個(gè) url 以查看它們是否引用同一個(gè)文件,即具有相同的協(xié)議、主機(jī)、端口和路徑。
protected void setURL(URL u, String protocol, String host, int port, String file, String ref) 已棄用。 使用 setURL(URL, String, String, int, String, String, String, String);
protected void setURL(URL u, String protocol, String host, int port, String authority, String userInfo, String path, String query, String ref) 將 URL 參數(shù)的字段設(shè)置為指示的值。
protected String toExternalForm(URL u) 將特定協(xié)議的 URL 轉(zhuǎn)換為字符串。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

構(gòu)造函數(shù)詳細(xì)信息

URLStreamHandler

public URLStreamHandler()

方法詳情

openConnection

protected abstract URLConnection openConnection(URL u) throws IOException

打開與 URL 參數(shù)引用的對(duì)象的連接。 此方法應(yīng)被子類覆蓋。

如果對(duì)于處理程序的協(xié)議(例如 HTTP 或 JAR),存在屬于以下包之一或其子包之一的公共專用 URLConnection 子類:java.lang、java.io、java.util、java.net、 返回的連接將屬于該子類。 例如,對(duì)于 HTTP,將返回一個(gè) HttpURLConnection,對(duì)于 JAR,將返回一個(gè) JarURLConnection。

參數(shù):

參數(shù)名稱 參數(shù)描述
u 此連接到的 URL。

返回:

URL 的 URLConnection 對(duì)象。

Throws:

Throw名稱 Throw描述
IOException 如果在打開連接時(shí)發(fā)生 I/O 錯(cuò)誤。

openConnection

protected URLConnection openConnection(URL u, Proxy p) throws IOException

與 openConnection(URL) 相同,只是連接將通過指定的代理進(jìn)行; 不支持代理的協(xié)議處理程序?qū)⒑雎源韰?shù)并建立正常連接。 調(diào)用此方法會(huì)搶占系統(tǒng)的默認(rèn) ProxySelector 設(shè)置。

參數(shù):

參數(shù)名稱 參數(shù)描述
u 此連接到的 URL。
p 建立連接的代理。 如果需要直接連接,則應(yīng)指定 Proxy.NO_PROXY。

返回:

URL 的 URLConnection 對(duì)象。

Throws:

Throw名稱 Throw描述
IOException 如果在打開連接時(shí)發(fā)生 I/O 錯(cuò)誤。
IllegalArgumentException 如果 u 或 p 為空,或者 p 的類型錯(cuò)誤。
UnsupportedOperationException 如果實(shí)現(xiàn)協(xié)議的子類不支持該方法。

parseURL

protected void parseURL(URL u, String spec, int start, int limit)

將 URL 的字符串表示形式解析為 URL 對(duì)象。

如果有任何繼承的上下文,那么它已經(jīng)被復(fù)制到 URL 參數(shù)中。

URLStreamHandler 的 parseURL 方法解析字符串表示,就好像它是一個(gè) http 規(guī)范一樣。 大多數(shù) URL 協(xié)議系列都有類似的解析。 具有不同語法的協(xié)議的流協(xié)議處理程序必須覆蓋此例程。

參數(shù):

參數(shù)名稱 參數(shù)描述
u 接收規(guī)范解析結(jié)果的 URL。
spec 表示必須解析的 URL 的字符串。
start 開始解析的字符索引。 這只是在指定協(xié)議名稱確定的“:”(如果有的話)之后。
limit 停止解析的字符位置。 這是字符串的結(jié)尾或“#”字符的位置(如果存在)。 尖號(hào)后面的所有信息都表示一個(gè)錨點(diǎn)。

getDefaultPort

protected int getDefaultPort()

返回此處理程序解析的 URL 的默認(rèn)端口。 此方法旨在被具有默認(rèn)端口號(hào)的處理程序覆蓋。

返回:

此處理程序解析的 URL 的默認(rèn)端口。

equals

protected boolean equals(URL u1, URL u2)

提供默認(rèn)的等于計(jì)算。 可能被對(duì) equals() 有不同要求的其他協(xié)議的處理程序覆蓋。 此方法要求它的任何參數(shù)都不為空。 僅由 java.net.URL 類調(diào)用它這一事實(shí)保證了這一點(diǎn)。

參數(shù):

參數(shù)名稱 參數(shù)描述
u1 一個(gè) URL 對(duì)象
u2 一個(gè) URL 對(duì)象

返回:

如果兩個(gè) url 被認(rèn)為相等,則為 true。即它們指的是同一個(gè)文件中的同一個(gè)片段。

hashCode

protected int hashCode(URL u)

提供默認(rèn)的哈希計(jì)算。 可能被對(duì) hashCode 計(jì)算有不同要求的其他協(xié)議的處理程序覆蓋。

參數(shù):

參數(shù)名稱 參數(shù)描述
u 一個(gè) URL 對(duì)象

返回:

適合哈希表索引的 int

sameFile

protected boolean sameFile(URL u1, URL u2)

比較兩個(gè) url 以查看它們是否引用同一個(gè)文件,即具有相同的協(xié)議、主機(jī)、端口和路徑。 此方法要求它的任何參數(shù)都不為空。 這是因?yàn)樗槐?java.net.URL 類間接調(diào)用的事實(shí)保證。

參數(shù):

參數(shù)名稱 參數(shù)描述
u1 一個(gè) URL 對(duì)象
u2 一個(gè) URL 對(duì)象

返回:

如果 u1 和 u2 引用同一個(gè)文件,則為 true

getHostAddress

protected InetAddress getHostAddress(URL u)

獲取我們主機(jī)的 IP 地址。 空主機(jī)字段或 DNS 故障將導(dǎo)致返回空值。

參數(shù):

參數(shù)名稱 參數(shù)描述
u 一個(gè) URL 對(duì)象

返回:

表示主機(jī) IP 地址的 InetAddress。

hostsEqual

protected boolean hostsEqual(URL u1, URL u2)

比較兩個(gè) URL 的主機(jī)組件。

參數(shù):

參數(shù)名稱 參數(shù)描述
u1 第一個(gè)要比較的主機(jī)的 URL
u2 要比較的第二個(gè)主機(jī)的 URL

返回:

當(dāng)且僅當(dāng)它們相等時(shí)為true,否則為false。

toExternalForm

protected String toExternalForm(URL u)

將特定協(xié)議的 URL 轉(zhuǎn)換為字符串。

參數(shù):

參數(shù)名稱 參數(shù)描述
u 網(wǎng)址。

返回:

URL 參數(shù)的字符串表示形式。

setURL

protected void setURL(URL u, String protocol, String host, int port, String authority, String userInfo, String path, String query, String ref)

將 URL 參數(shù)的字段設(shè)置為指示的值。 只有從 URLStreamHandler 派生的類才能使用此方法來設(shè)置 URL 字段的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
u 要修改的 URL。
protocol 協(xié)議名稱。
host URL 的遠(yuǎn)程主機(jī)值。
port 遠(yuǎn)程機(jī)器上的端口。
authority URL 的權(quán)限部分。
userInfo URL 的 userInfo 部分。
path URL 的路徑組件。
query URL 的查詢部分。
ref 參考資料。

Throws:

Throw名稱 Throw描述
SecurityException 如果 URL 的協(xié)議處理程序與此不同

setURL

@Deprecated protected void setURL(URL u, String protocol, String host, int port, String file, String ref)

已棄用。 使用 setURL(URL, String, String, int, String, String, String, String);

將 URL 參數(shù)的字段設(shè)置為指示的值。 只有從 URLStreamHandler 派生的類才能使用此方法來設(shè)置 URL 字段的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
u 要修改的 URL。
protocol 協(xié)議名稱。 自 1.2 起,該值被忽略。
host URL 的遠(yuǎn)程主機(jī)值。
port 遠(yuǎn)程機(jī)器上的端口。
file 文件。
ref 參考資料。

Throws:

Throw名稱 Throw描述
SecurityException 如果 URL 的協(xié)議處理程序與此不同
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)