鴻蒙OS URLConnection

2022-06-15 17:12 更新

URLConnection

java.lang.Object

|---java.net.URLConnection

public abstract class URLConnection
extends Object

抽象類 URLConnection 是表示應(yīng)用程序和 URL 之間的通信鏈接的所有類的超類。 此類的實(shí)例可用于讀取和寫入 URL 引用的資源。 通常,創(chuàng)建到 URL 的連接是一個(gè)多步驟的過程:----------------------------> 時(shí)間

  1. 連接對象是通過在 URL 上調(diào)用 openConnection 方法來創(chuàng)建的。
  2. 設(shè)置參數(shù)和一般請求屬性被操縱。
  3. 與遠(yuǎn)程對象的實(shí)際連接是使用 connect 方法建立的。
  4. 遠(yuǎn)程對象變?yōu)榭捎谩?可以訪問遠(yuǎn)程對象的標(biāo)頭字段和內(nèi)容。

使用以下方法修改設(shè)置參數(shù):

  • setAllowUserInteraction
  • setDoInput
  • setDoOutput
  • setIfModifiedSince
  • setUseCaches

并使用以下方法修改通用請求屬性:

  • setRequestProperty

可以使用 setDefaultAllowUserInteraction 和 setDefaultUseCaches 方法設(shè)置 AllowUserInteraction 和 UseCaches 參數(shù)的默認(rèn)值。

上面的每個(gè) set 方法都有一個(gè)對應(yīng)的 get 方法來檢索參數(shù)或通用請求屬性的值。 適用的特定參數(shù)和一般請求屬性是特定于協(xié)議的。

以下方法用于在與遠(yuǎn)程對象建立連接后訪問標(biāo)頭字段和內(nèi)容:

  • getContent
  • getHeaderField
  • getInputStream
  • getOutputStream

某些標(biāo)題字段被頻繁訪問。 方法:

  • getContentEncoding
  • getContentLength
  • getContentType
  • getDate
  • getExpiration
  • getLastModifed

提供對這些字段的方便訪問。 getContentType方法被getContent方法用來判斷遠(yuǎn)程對象的類型; 子類可能會(huì)發(fā)現(xiàn)重寫 getContentType 方法很方便。

在常見情況下,可以忽略所有預(yù)連接參數(shù)和一般請求屬性:預(yù)連接參數(shù)和請求屬性默認(rèn)為合理值。 對于這個(gè)接口的大多數(shù)客戶端來說,只有兩個(gè)有趣的方法:getInputStream 和 getContent,它們通過便利方法鏡像到 URL 類中。

有關(guān) http 連接的請求屬性和標(biāo)頭字段的更多信息,請參見:

 http://www.ietf.org/rfc/rfc2616.txt 

在請求之后對 URLConnection 的 InputStream 或 OutputStream 調(diào)用 close() 方法可能會(huì)釋放與此實(shí)例關(guān)聯(lián)的網(wǎng)絡(luò)資源,除非特定的協(xié)議規(guī)范為其指定了不同的行為。

字段摘要

修飾符和類型 字段 描述
protected boolean allowUserInteraction 如果為true,則在允許用戶交互(例如彈出身份驗(yàn)證對話框)有意義的上下文中檢查此 URL。
protected boolean connected 如果為 false,則此連接對象尚未創(chuàng)建到指定 URL 的通信鏈接。
protected boolean doInput 此變量由 setDoInput 方法設(shè)置。
protected boolean doOutput 此變量由 setDoOutput 方法設(shè)置。
protected long ifModifiedSince 一些協(xié)議支持跳過對象的獲取,除非對象在某個(gè)時(shí)間之后被修改過。
protected URL url URL 代表萬維網(wǎng)上打開此連接的遠(yuǎn)程對象。
protected boolean useCaches 如果為 true,則允許協(xié)議盡可能使用緩存。

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

修飾符 構(gòu)造函數(shù) 描述
protected URLConnection(URL url) 構(gòu)造到指定 URL 的 URL 連接。

方法總結(jié)

修飾符和類型 方法 描述
void addRequestProperty(String key, String value) 添加由鍵值對指定的通用請求屬性。
abstract void connect() 如果此類連接尚未建立,則打開指向此 URL 引用的資源的通信鏈接。
boolean getAllowUserInteraction() 返回此對象的 allowUserInteraction 字段的值。
int getConnectTimeout() 返回連接超時(shí)的設(shè)置。
Object getContent() 檢索此 URL 連接的內(nèi)容。
Object getContent(Class[] classes) 檢索此 URL 連接的內(nèi)容。
String getContentEncoding() 返回內(nèi)容編碼標(biāo)頭字段的值。
int getContentLength() 返回內(nèi)容長度標(biāo)頭字段的值。
long getContentLengthLong() 以 long 形式返回 content-length 標(biāo)頭字段的值。
String getContentType() 返回內(nèi)容類型標(biāo)頭字段的值。
long getDate() 返回日期標(biāo)題字段的值。
static boolean getDefaultAllowUserInteraction() 返回 allowUserInteraction 字段的默認(rèn)值。
static String getDefaultRequestProperty(String key) 已棄用。 在獲得適當(dāng)?shù)?nbsp;URLConnection 實(shí)例后,應(yīng)使用實(shí)例特定的 getRequestProperty 方法。
boolean getDefaultUseCaches() 返回 URLConnection 的 useCaches 標(biāo)志的默認(rèn)值。
boolean getDoInput() 返回此 URLConnection 的 doInput 標(biāo)志的值。
boolean getDoOutput() 返回此 URLConnection 的 doOutput 標(biāo)志的值。
long getExpiration() 返回 expires 標(biāo)頭字段的值。
static FileNameMap getFileNameMap() 從數(shù)據(jù)文件加載文件名映射(一個(gè) mimetable)。
String getHeaderField(int n) 返回第 n 個(gè)標(biāo)頭字段的值。
String getHeaderField(String name) 返回命名標(biāo)頭字段的值。
long getHeaderFieldDate(String name, long Default) 返回解析為日期的命名字段的值。
int getHeaderFieldInt(String name, int Default) 返回解析為數(shù)字的命名字段的值。
String getHeaderFieldKey(int n) 返回第 n 個(gè)標(biāo)頭字段的鍵。
long getHeaderFieldLong(String name, long Default) 返回解析為數(shù)字的命名字段的值。
MapString,ListString getHeaderFields() 返回標(biāo)頭字段的不可修改的 Map。
long getIfModifiedSince() 返回此對象的 ifModifiedSince 字段的值。
InputStream getInputStream() 返回從此打開的連接讀取的輸入流。
long getLastModified() 返回最后修改的標(biāo)頭字段的值。
OutputStream getOutputStream() 返回寫入此連接的輸出流。
Permission getPermission() 返回一個(gè)權(quán)限對象,該對象表示建立由該對象表示的連接所需的權(quán)限。
int getReadTimeout() 返回讀取超時(shí)的設(shè)置。
MapString,ListString getRequestProperties() 返回此連接的一般請求屬性的不可修改 Map。
String getRequestProperty(String key) 返回此連接的命名常規(guī)請求屬性的值。
URL getURL() 返回此 URLConnection 的 URL 字段的值。
boolean getUseCaches() 返回此 URLConnection 的 useCaches 字段的值。
static String guessContentTypeFromName(String fname) 嘗試根據(jù) URL 的指定“文件”組件確定對象的內(nèi)容類型。
static String guessContentTypeFromStream(InputStream is) 嘗試根據(jù)輸入流開頭的字符確定輸入流的類型。
void setAllowUserInteraction(boolean allowuserinteraction) 設(shè)置此 URLConnection 的 allowUserInteraction 字段的值。
void setConnectTimeout(int timeout) 設(shè)置一個(gè)指定的超時(shí)值,以毫秒為單位,在打開到此 URLConnection 引用的資源的通信鏈接時(shí)使用。
static void setContentHandlerFactory(ContentHandlerFactory fac) 設(shè)置應(yīng)用程序的 ContentHandlerFactory。
static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction) 將所有未來 URLConnection 對象的 allowUserInteraction 字段的默認(rèn)值設(shè)置為指定值。
static void setDefaultRequestProperty(String key, String value) 已棄用。 在獲得適當(dāng)?shù)?nbsp;URLConnection 實(shí)例后,應(yīng)使用實(shí)例特定的 setRequestProperty 方法。 調(diào)用此方法將無效。
void setDefaultUseCaches(boolean defaultusecaches) 將 useCaches 字段的默認(rèn)值設(shè)置為指定值。
void setDoInput(boolean doinput) 將此 URLConnection 的 doInput 字段的值設(shè)置為指定值。
void setDoOutput(boolean dooutput) 將此 URLConnection 的 doOutput 字段的值設(shè)置為指定值。
static void setFileNameMap(FileNameMap map) 設(shè)置 FileNameMap。
void setIfModifiedSince(long ifmodifiedsince) 將此 URLConnection 的 ifModifiedSince 字段的值設(shè)置為指定值。
void setReadTimeout(int timeout) 將讀取超時(shí)設(shè)置為指定的超時(shí),以毫秒為單位。
void setRequestProperty(String key, String value) 設(shè)置一般請求屬性。
void setUseCaches(boolean usecaches) 將此 URLConnection 的 useCaches 字段的值設(shè)置為指定值。
String toString() 返回此 URL 連接的字符串表示形式。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

字段詳細(xì)信息

allowUserInteraction

protected boolean allowUserInteraction

如果為 true,則在允許用戶交互(如彈出身份驗(yàn)證對話框)有意義的上下文中檢查此 URL。 如果為 false,則不允許用戶交互。

該字段的值可以通過 setAllowUserInteraction 方法設(shè)置。 它的值由 getAllowUserInteraction 方法返回。 它的默認(rèn)值是最后一次調(diào)用 setDefaultAllowUserInteraction 方法時(shí)的參數(shù)值。

connected

protected boolean connected

如果為 false,則此連接對象尚未創(chuàng)建到指定 URL 的通信鏈接。 如果為true,則通信鏈路已建立。

doInput

protected boolean doInput

此變量由 setDoInput 方法設(shè)置。 它的值由 getDoInput 方法返回。

URL 連接可用于輸入和/或輸出。 將 doInput 標(biāo)志設(shè)置為 true 表示應(yīng)用程序打算從 URL 連接讀取數(shù)據(jù)。

此字段的默認(rèn)值為 true。

doOutput

protected boolean doOutput

此變量由 setDoOutput 方法設(shè)置。 它的值由 getDoOutput 方法返回。

URL 連接可用于輸入和/或輸出。 將 doOutput 標(biāo)志設(shè)置為 true 表示應(yīng)用程序打算將數(shù)據(jù)寫入 URL 連接。

此字段的默認(rèn)值為 false。

ifModifiedSince

protected long ifModifiedSince

一些協(xié)議支持跳過對象的獲取,除非對象在某個(gè)時(shí)間之后被修改過。

非零值給出的時(shí)間是自格林威治標(biāo)準(zhǔn)時(shí)間 1970 年 1 月 1 日以來的毫秒數(shù)。 僅當(dāng)對象的修改時(shí)間比該時(shí)間更新時(shí)才獲取該對象。

此變量由 setIfModifiedSince 方法設(shè)置。 它的值由 getIfModifiedSince 方法返回。

該字段的默認(rèn)值為 0,表示必須始終進(jìn)行提取。

url

protected URL url

URL 代表萬維網(wǎng)上打開此連接的遠(yuǎn)程對象。

該字段的值可以通過 getURL 方法訪問。

此變量的默認(rèn)值是 URLConnection 構(gòu)造函數(shù)中 URL 參數(shù)的值。

useCaches

protected boolean useCaches

如果為 true,則允許協(xié)議盡可能使用緩存。 如果為 false,則協(xié)議必須始終嘗試獲取對象的新副本。

該字段由 setUseCaches 方法設(shè)置。 它的值由 getUseCaches 方法返回。

它的默認(rèn)值是在最后一次調(diào)用 setDefaultUseCaches 方法時(shí)給出的值。

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

URLConnection

protected URLConnection(URL url)

構(gòu)造到指定 URL 的 URL 連接。 未創(chuàng)建與 URL 引用的對象的連接。

參數(shù):

參數(shù)名稱 參數(shù)描述
url 指定的網(wǎng)址。

方法詳情

getFileNameMap

public static FileNameMap getFileNameMap()

從數(shù)據(jù)文件加載文件名映射(一個(gè) mimetable)。 它將首先嘗試加載由“content.types.user.table”屬性定義的用戶特定表。 如果失敗,它會(huì)嘗試加載默認(rèn)的內(nèi)置表。

返回:

文件名映射

setFileNameMap

public static void setFileNameMap(FileNameMap map)

設(shè)置 FileNameMap。

如果有安全管理器,該方法首先調(diào)用安全管理器的 checkSetFactory 方法,確保操作被允許。 這可能會(huì)導(dǎo)致 SecurityException。

參數(shù):

參數(shù)名稱 參數(shù)描述
map 要設(shè)置的 FileNameMap

Throws:

Throw名稱 Throw描述
SecurityException 如果存在安全管理器并且其 checkSetFactory 方法不允許該操作。

connect

public abstract void connect() throws IOException

如果此類連接尚未建立,則打開指向此 URL 引用的資源的通信鏈接。

如果在連接已經(jīng)打開時(shí)調(diào)用 connect 方法(由值為 true 的 connected 字段指示),則忽略該調(diào)用。

URLConnection 對象經(jīng)歷兩個(gè)階段:首先它們被創(chuàng)建,然后它們被連接。 在創(chuàng)建之后和連接之前,可以指定各種選項(xiàng)(例如,doInput 和 UseCaches)。 連接后,嘗試設(shè)置它們是錯(cuò)誤的。 如果需要,依賴于連接的操作(如 getContentLength)將隱式執(zhí)行連接。

Throws:

Throw名稱 Throw描述
SocketTimeoutException 如果在建立連接之前超時(shí)到期
IOException 如果在打開連接時(shí)發(fā)生 I/O 錯(cuò)誤。

setConnectTimeout

public void setConnectTimeout(int timeout)

設(shè)置一個(gè)指定的超時(shí)值,以毫秒為單位,在打開到此 URLConnection 引用的資源的通信鏈接時(shí)使用。 如果在建立連接之前超時(shí)到期,則會(huì)引發(fā) java.net.SocketTimeoutException。 超時(shí)為零被解釋為無限超時(shí)。

此方法的一些非標(biāo)準(zhǔn)實(shí)現(xiàn)可能會(huì)忽略指定的超時(shí)。 要查看連接超時(shí)設(shè)置,請調(diào)用 getConnectTimeout()。

參數(shù):

參數(shù)名稱 參數(shù)描述
timeout 以毫秒為單位指定連接超時(shí)值的 int

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果超時(shí)參數(shù)為負(fù)

getConnectTimeout

public int getConnectTimeout()

返回連接超時(shí)的設(shè)置。

0 返回意味著該選項(xiàng)被禁用(即,無限超時(shí))。

返回:

以毫秒為單位指示連接超時(shí)值的 int

setReadTimeout

public void setReadTimeout(int timeout)

將讀取超時(shí)設(shè)置為指定的超時(shí),以毫秒為單位。 當(dāng)與資源建立連接時(shí),非零值指定從輸入流讀取時(shí)的超時(shí)。 如果在有數(shù)據(jù)可供讀取之前超時(shí)到期,則會(huì)引發(fā) java.net.SocketTimeoutException。 超時(shí)為零被解釋為無限超時(shí)。

此方法的一些非標(biāo)準(zhǔn)實(shí)現(xiàn)會(huì)忽略指定的超時(shí)。 要查看讀取超時(shí)設(shè)置,請調(diào)用 getReadTimeout()。

參數(shù):

參數(shù)名稱 參數(shù)描述
timeout 一個(gè) int,指定要使用的超時(shí)值(以毫秒為單位)

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果超時(shí)參數(shù)為負(fù)

getReadTimeout

public int getReadTimeout()

返回讀取超時(shí)的設(shè)置。 0 返回意味著該選項(xiàng)被禁用(即,無限超時(shí))。

返回:

以毫秒為單位指示讀取超時(shí)值的 int

getURL

public URL getURL()

返回此 URLConnection 的 URL 字段的值。

返回:

此 URLConnection 的 URL 字段的值。

getContentLength

public int getContentLength()

返回內(nèi)容長度標(biāo)頭字段的值。

注意: getContentLengthLong() 應(yīng)該優(yōu)先于這個(gè)方法,因?yàn)樗祷匾粋€(gè) long ,因此更便攜。

返回:

此連接的 URL 引用的資源的內(nèi)容長度,如果內(nèi)容長度未知,或者內(nèi)容長度大于 Integer.MAX_VALUE,則為 -1。

getContentLengthLong

public long getContentLengthLong()

以 long 形式返回 content-length 標(biāo)頭字段的值。

返回:

此連接的 URL 引用的資源的內(nèi)容長度,如果內(nèi)容長度未知,則為 -1。

getContentType

public String getContentType()

返回內(nèi)容類型標(biāo)頭字段的值。

返回:

URL 引用的資源的內(nèi)容類型,如果不知道,則返回 null。

getContentEncoding

public String getContentEncoding()

返回內(nèi)容編碼標(biāo)頭字段的值。

返回:

URL 引用的資源的內(nèi)容編碼,如果未知,則返回 null。

getExpiration

public long getExpiration()

返回 expires 標(biāo)頭字段的值。

返回:

此 URL 引用的資源的到期日期,如果未知,則為 0。 該值是自 1970 年 1 月 1 日 GMT 以來的毫秒數(shù)。

getDate

public long getDate()

返回日期標(biāo)題字段的值。

返回:

URL 引用的資源的發(fā)送日期,如果不知道,則為 0。 返回的值是自 1970 年 1 月 1 日 GMT 以來的毫秒數(shù)。

getLastModified

public long getLastModified()

返回最后修改的標(biāo)頭字段的值。 結(jié)果是自 1970 年 1 月 1 日 GMT 以來的毫秒數(shù)。

返回:

此 URLConnection 引用的資源上次修改的日期,如果未知,則為 0。

getHeaderField

public String getHeaderField(String name)

返回命名標(biāo)頭字段的值。

如果在多次使用可能不同的值設(shè)置相同標(biāo)頭的連接上調(diào)用,則僅返回最后一個(gè)值。

參數(shù):

參數(shù)名稱 參數(shù)描述
name 標(biāo)題字段的名稱。

返回:

命名的標(biāo)頭字段的值,如果標(biāo)頭中沒有此類字段,則為 null。

getHeaderFields

public MapString,ListString getHeaderFields()

返回標(biāo)頭字段的不可修改的 Map。 Map 鍵是表示響應(yīng)標(biāo)頭字段名稱的字符串。 每個(gè) Map 值都是一個(gè)不可修改的字符串列表,表示相應(yīng)的字段值。

返回:

標(biāo)題字段映射

getHeaderFieldInt

public int getHeaderFieldInt(String name, int Default)

返回解析為數(shù)字的命名字段的值。

存在這種形式的 getHeaderField 是因?yàn)槟承┻B接類型(例如 http-ng)具有預(yù)解析的標(biāo)頭。 該連接類型的類可以覆蓋此方法并使解析短路。

參數(shù):

參數(shù)名稱 參數(shù)描述
name 標(biāo)題字段的名稱。
Default 默認(rèn)值。

返回:

命名字段的值,解析為整數(shù)。 如果字段丟失或格式錯(cuò)誤,則返回默認(rèn)值。

getHeaderFieldLong

public long getHeaderFieldLong(String name, long Default)

返回解析為數(shù)字的命名字段的值。

存在這種形式的 getHeaderField 是因?yàn)槟承┻B接類型(例如 http-ng)具有預(yù)解析的標(biāo)頭。 該連接類型的類可以覆蓋此方法并使解析短路。

參數(shù):

參數(shù)名稱 參數(shù)描述
name 標(biāo)題字段的名稱。
Default 默認(rèn)值。

返回:

命名字段的值,解析為 long。 如果字段丟失或格式錯(cuò)誤,則返回默認(rèn)值。

getHeaderFieldDate

public long getHeaderFieldDate(String name, long Default)

返回解析為日期的命名字段的值。 結(jié)果是命名字段表示的自 1970 年 1 月 1 日 GMT 以來的毫秒數(shù)。

存在這種形式的 getHeaderField 是因?yàn)槟承┻B接類型(例如 http-ng)具有預(yù)解析的標(biāo)頭。 該連接類型的類可以覆蓋此方法并使解析短路。

參數(shù):

參數(shù)名稱 參數(shù)描述
name 標(biāo)題字段的名稱。
Default 默認(rèn)值。

返回:

字段的值,解析為日期。 如果字段丟失或格式錯(cuò)誤,則返回 Default 參數(shù)的值。

getHeaderFieldKey

public String getHeaderFieldKey(int n)

返回第 n 個(gè)標(biāo)頭字段的鍵。 如果少于 n+1 個(gè)字段,則返回 null。

參數(shù):

參數(shù)名稱 參數(shù)描述
n 一個(gè)索引,其中 n>=0

返回:

第 n 個(gè)標(biāo)頭字段的鍵,如果少于 n+1 個(gè)字段,則返回 null。

getHeaderField

public String getHeaderField(int n)

返回第 n 個(gè)標(biāo)頭字段的值。 如果少于 n+1 個(gè)字段,則返回 null。

此方法可以與 getHeaderFieldKey 方法結(jié)合使用,以遍歷消息中的所有標(biāo)頭。

參數(shù):

參數(shù)名稱 參數(shù)描述
n 一個(gè)索引,其中 n>=0

返回:

第 n 個(gè)頭字段的值,如果少于 n+1 個(gè)字段,則為 null

getContent

public Object getContent() throws IOException

檢索此 URL 連接的內(nèi)容。

該方法首先通過調(diào)用 getContentType 方法確定對象的內(nèi)容類型。 如果這是應(yīng)用程序第一次看到該特定內(nèi)容類型,則為該內(nèi)容類型創(chuàng)建一個(gè)內(nèi)容處理程序:

  1. 如果應(yīng)用程序已經(jīng)使用 setContentHandlerFactory 方法設(shè)置了一個(gè)內(nèi)容處理程序工廠實(shí)例,那么該實(shí)例的 createContentHandler 方法會(huì)以內(nèi)容類型作為參數(shù)被調(diào)用; 結(jié)果是該內(nèi)容類型的內(nèi)容處理程序。

  1. 如果尚未設(shè)置內(nèi)容處理程序工廠,或者工廠的 createContentHandler 方法返回 null,則應(yīng)用程序加載名為:

            sun.net.www.content.<contentType>     

其中 <contentType> 是通過獲取內(nèi)容類型字符串、將所有斜杠字符替換為句點(diǎn) ('.') 以及所有其他非字母數(shù)字字符替換為下劃線字符 '_' 來形成的。 字母數(shù)字字符具體是 26 個(gè)大寫 ASCII 字母“A”到“Z”、26 個(gè)小寫 ASCII 字母“a”到“z”和 10 個(gè) ASCII 數(shù)字“0”到“9”。 如果指定的類不存在,或者不是 ContentHandler 的子類,則拋出 UnknownServiceException。

返回:

獲取的對象。 instanceof 運(yùn)算符應(yīng)用于確定返回的特定對象類型。

Throws:

Throw名稱 Throw描述
IOException 如果在獲取內(nèi)容時(shí)發(fā)生 I/O 錯(cuò)誤。
UnknownServiceException 如果協(xié)議不支持內(nèi)容類型。

getContent

public Object getContent(Class[] classes) throws IOException

檢索此 URL 連接的內(nèi)容。

參數(shù):

參數(shù)名稱 參數(shù)描述
classes 指示請求類型的 Class 數(shù)組

返回:

獲取的對象是類數(shù)組中指定的類型的第一個(gè)匹配項(xiàng)。 如果不支持任何請求的類型,則為 null。 instanceof 運(yùn)算符應(yīng)用于確定返回的特定對象類型。

Throws:

Throw名稱 Throw描述
IOException 如果在獲取內(nèi)容時(shí)發(fā)生 I/O 錯(cuò)誤。
UnknownServiceException 如果協(xié)議不支持內(nèi)容類型。

getPermission

public Permission getPermission() throws IOException

返回一個(gè)權(quán)限對象,該對象表示建立由該對象表示的連接所需的權(quán)限。如果建立連接不需要權(quán)限,則此方法返回 null。默認(rèn)情況下,此方法返回 java.security.AllPermission。子類應(yīng)覆蓋此方法并返回最能代表與 URL 建立連接所需的權(quán)限的權(quán)限。例如,表示文件的 URLConnection: URL 將返回 java.io.FilePermission 對象。

返回的權(quán)限可能取決于連接的狀態(tài)。例如,連接前的權(quán)限可能與連接后的權(quán)限不同。例如,一個(gè) HTTP 服務(wù)器,比如 foo.com,可能會(huì)將連接重定向到不同的主機(jī),比如 bar.com。連接前連接返回的權(quán)限代表連接foo.com所需的權(quán)限,連接后返回的權(quán)限是bar.com。

權(quán)限通常用于兩個(gè)目的:保護(hù)通過 URLConnections 獲得的對象的緩存,以及檢查接收者了解特定 URL 的權(quán)限。在第一種情況下,應(yīng)在獲得對象后獲得許可。例如,在 HTTP 連接中,這將表示連接到最終從中獲取數(shù)據(jù)的主機(jī)的權(quán)限。第二種情況,需要在連接前獲得許可并進(jìn)行測試。

返回:

表示建立此 URLConnection 表示的連接所需的權(quán)限的權(quán)限對象。

Throws:

Throw名稱 Throw描述
IOException 如果權(quán)限的計(jì)算需要網(wǎng)絡(luò)或文件 I/O 并且在計(jì)算時(shí)發(fā)生異常。

getInputStream

public InputStream getInputStream() throws IOException

返回從此打開的連接讀取的輸入流。 如果讀取超時(shí)在數(shù)據(jù)可供讀取之前到期,則從返回的輸入流讀取時(shí)可能會(huì)引發(fā) SocketTimeoutException。

返回:

從此打開的連接中讀取的輸入流。

Throws:

Throw名稱 Throw描述
IOException 如果在創(chuàng)建輸入流時(shí)發(fā)生 I/O 錯(cuò)誤。
UnknownServiceException 如果協(xié)議不支持輸入。

getOutputStream

public OutputStream getOutputStream() throws IOException

返回寫入此連接的輸出流。

返回:

寫入此連接的輸出流。

Throws:

Throw名稱 Throw描述
IOException 如果在創(chuàng)建輸出流時(shí)發(fā)生 I/O 錯(cuò)誤。
UnknownServiceException 如果協(xié)議不支持輸出。

toString

public String toString()

返回此 URL 連接的字符串表示形式。

覆蓋:

類 Object 中的 toString

返回:

此 URLConnection 的字符串表示形式。

setDoInput

public void setDoInput(boolean doinput)

將此 URLConnection 的 doInput 字段的值設(shè)置為指定值。

URL 連接可用于輸入和/或輸出。 如果您打算使用 URL 連接進(jìn)行輸入,請將 DoInput 標(biāo)志設(shè)置為 true,否則設(shè)置為 false。 默認(rèn)值為true。

參數(shù):

參數(shù)名稱 參數(shù)描述
doinput 新值。

Throws:

Throw名稱 Throw描述
IllegalStateException 如果已經(jīng)連接

getDoInput

public boolean getDoInput()

返回此 URLConnection 的 doInput 標(biāo)志的值。

返回:

此 URLConnection 的 doInput 標(biāo)志的值。

setDoOutput

public void setDoOutput(boolean dooutput)

將此 URLConnection 的 doOutput 字段的值設(shè)置為指定值。

URL 連接可用于輸入和/或輸出。 如果您打算使用 URL 連接進(jìn)行輸出,請將 DoOutput 標(biāo)志設(shè)置為 true,否則設(shè)置為 false。 默認(rèn)值為false。

參數(shù):

參數(shù)名稱 參數(shù)描述
dooutput 新值。

Throws:

Throw名稱 Throw描述
IllegalStateException 如果已經(jīng)連接

getDoOutput

public boolean getDoOutput()

返回此 URLConnection 的 doOutput 標(biāo)志的值。

返回:

此 URLConnection 的 doOutput 標(biāo)志的值。

setAllowUserInteraction

public void setAllowUserInteraction(boolean allowuserinteraction)

設(shè)置此 URLConnection 的 allowUserInteraction 字段的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
allowuserinteraction 新值。

Throws:

Throw名稱 Throw描述
IllegalStateException 如果已經(jīng)連接

getAllowUserInteraction

public boolean getAllowUserInteraction()

返回此對象的 allowUserInteraction 字段的值。

返回:

此對象的 allowUserInteraction 字段的值。

setDefaultAllowUserInteraction

public static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)

將所有未來 URLConnection 對象的 allowUserInteraction 字段的默認(rèn)值設(shè)置為指定值。

參數(shù):

參數(shù)名稱 參數(shù)描述
defaultallowuserinteraction 新值。

getDefaultAllowUserInteraction

public static boolean getDefaultAllowUserInteraction()

返回 allowUserInteraction 字段的默認(rèn)值。

默認(rèn)值為“sticky”,是所有 URLConnections 靜態(tài)狀態(tài)的一部分。 此標(biāo)志適用于創(chuàng)建的下一個(gè)和所有后續(xù) URLConnection。

返回:

allowUserInteraction 字段的默認(rèn)值。

setUseCaches

public void setUseCaches(boolean usecaches)

將此 URLConnection 的 useCaches 字段的值設(shè)置為指定值。

一些協(xié)議會(huì)緩存文檔。 有時(shí),重要的是能夠“通過”并忽略緩存(例如,瀏覽器中的“重新加載”按鈕)。 如果連接上的 UseCaches 標(biāo)志為true,則允許連接使用它可以使用的任何緩存。 如果為 false,緩存將被忽略。 默認(rèn)值來自DefaultUseCaches,默認(rèn)為true。

參數(shù):

參數(shù)名稱 參數(shù)描述
usecaches 一個(gè)布爾值,指示是否允許緩存

Throws:

Throw名稱 Throw描述
IllegalStateException 如果已經(jīng)連接

getUseCaches

public boolean getUseCaches()

返回此 URLConnection 的 useCaches 字段的值。

返回:

此 URLConnection 的 useCaches 字段的值。

setIfModifiedSince

public void setIfModifiedSince(long ifmodifiedsince)

將此 URLConnection 的 ifModifiedSince 字段的值設(shè)置為指定值。

參數(shù):

參數(shù)名稱 參數(shù)描述
ifmodifiedsince 新值。

Throws:

Throw名稱 Throw描述
IllegalStateException 如果已經(jīng)連接

getIfModifiedSince

public long getIfModifiedSince()

返回此對象的 ifModifiedSince 字段的值。

返回:

此對象的 ifModifiedSince 字段的值。

getDefaultUseCaches

public boolean getDefaultUseCaches()

返回 URLConnection 的 useCaches 標(biāo)志的默認(rèn)值。

默認(rèn)值為“sticky”,是所有 URLConnections 靜態(tài)狀態(tài)的一部分。 此標(biāo)志適用于創(chuàng)建的下一個(gè)和所有后續(xù) URLConnection。

返回:

URLConnection 的 useCaches 標(biāo)志的默認(rèn)值。

setDefaultUseCaches

public void setDefaultUseCaches(boolean defaultusecaches)

將 useCaches 字段的默認(rèn)值設(shè)置為指定值。

參數(shù):

參數(shù)名稱 參數(shù)描述
defaultusecaches 新值。

setRequestProperty

public void setRequestProperty(String key, String value)

設(shè)置一般請求屬性。 如果具有鍵的屬性已存在,則用新值覆蓋其值。

注意:HTTP 要求所有可以合法地具有多個(gè)具有相同鍵的實(shí)例的請求屬性使用逗號分隔的列表語法,該語法允許將多個(gè)屬性附加到單個(gè)屬性中。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 知道請求的關(guān)鍵字(例如,“Accept”)。
value 與其關(guān)聯(lián)的值。

Throws:

Throw名稱 Throw描述
IllegalStateException 如果已經(jīng)連接
NullPointerException 如果鍵為空

addRequestProperty

public void addRequestProperty(String key, String value)

添加由鍵值對指定的通用請求屬性。 此方法不會(huì)覆蓋與同一鍵關(guān)聯(lián)的現(xiàn)有值。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 知道請求的關(guān)鍵字(例如,“Accept”)。
value 與其關(guān)聯(lián)的值。

Throws:

Throw名稱 Throw描述
IllegalStateException 如果已經(jīng)連接
NullPointerException 如果鍵為空

getRequestProperty

public String getRequestProperty(String key)

返回此連接的命名常規(guī)請求屬性的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 知道請求的關(guān)鍵字(例如,“Accept”)。

返回:

此連接的命名常規(guī)請求屬性的值。 如果 key 為 null,則返回 null。

Throws:

Throw名稱 Throw描述
IllegalStateException 如果已經(jīng)連接

getRequestProperties

public MapString,ListString getRequestProperties()

返回此連接的一般請求屬性的不可修改 Map。 Map 鍵是表示請求標(biāo)頭字段名稱的字符串。 每個(gè) Map 值都是一個(gè)不可修改的字符串列表,表示相應(yīng)的字段值。

返回:

此連接的一般請求屬性的映射。

Throws:

Throw名稱 Throw描述
IllegalStateException 如果已經(jīng)連接

setDefaultRequestProperty

@Deprecated public static void setDefaultRequestProperty(String key, String value)

已棄用。 在獲得適當(dāng)?shù)?URLConnection 實(shí)例后,應(yīng)使用實(shí)例特定的 setRequestProperty 方法。 調(diào)用此方法將無效。

設(shè)置一般請求屬性的默認(rèn)值。 創(chuàng)建 URLConnection 時(shí),會(huì)使用這些屬性對其進(jìn)行初始化。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 知道請求的關(guān)鍵字(例如,“Accept”)。
value 與鍵關(guān)聯(lián)的值。

getDefaultRequestProperty

@Deprecated public static String getDefaultRequestProperty(String key)

已棄用。 在獲得適當(dāng)?shù)?URLConnection 實(shí)例后,應(yīng)使用實(shí)例特定的 getRequestProperty 方法。

返回默認(rèn)請求屬性的值。 為每個(gè)連接設(shè)置默認(rèn)請求屬性。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 知道請求的關(guān)鍵字(例如,“Accept”)。

返回:

指定鍵的默認(rèn)請求屬性的值。

setContentHandlerFactory

public static void setContentHandlerFactory(ContentHandlerFactory fac)

設(shè)置應(yīng)用程序的 ContentHandlerFactory。 應(yīng)用程序最多可以調(diào)用一次。

ContentHandlerFactory 實(shí)例用于從內(nèi)容類型構(gòu)造內(nèi)容處理程序

如果有安全管理器,該方法首先調(diào)用安全管理器的 checkSetFactory 方法,確保操作被允許。 這可能會(huì)導(dǎo)致 SecurityException。

參數(shù):

參數(shù)名稱 參數(shù)描述
fac 想要的工廠。

Throws:

Throw名稱 Throw描述
Error 如果工廠已經(jīng)定義。
SecurityException 如果存在安全管理器并且其 checkSetFactory 方法不允許該操作。

guessContentTypeFromName

public static String guessContentTypeFromName(String fname)

嘗試根據(jù) URL 的指定“文件”組件確定對象的內(nèi)容類型。 這是覆蓋 getContentType 方法的子類可以使用的便捷方法。

參數(shù):

參數(shù)名稱 參數(shù)描述
fname 一個(gè)文件名。

返回:

根據(jù)文件名猜測對象的內(nèi)容類型是什么。

guessContentTypeFromStream

public static String guessContentTypeFromStream(InputStream is) throws IOException

嘗試根據(jù)輸入流開頭的字符確定輸入流的類型。 覆蓋 getContentType 方法的子類可以使用此方法。

理想情況下,不需要此例程。 但是很多 http 服務(wù)器返回了不正確的內(nèi)容類型; 此外,還有很多非標(biāo)準(zhǔn)的擴(kuò)展。 直接檢查字節(jié)以確定內(nèi)容類型通常比相信 http 服務(wù)器聲明的內(nèi)容類型更準(zhǔn)確。

參數(shù):

參數(shù)名稱 參數(shù)描述
is 支持標(biāo)記的輸入流。

返回:

對內(nèi)容類型的猜測,如果無法確定,則為 null。

Throws:

Throw名稱 Throw描述
IOException 如果在讀取輸入流時(shí)發(fā)生 I/O 錯(cuò)誤。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號