java.net
類 URLConnectionjava.lang.Object java.net.URLConnection
- 直接已知子類:
- HttpURLConnection, JarURLConnection
public abstract class URLConnection
- extends Object
抽象類 URLConnection
是所有類的超類,它代表應用程序和 URL 之間的通信鏈接。此類的實例可用於讀取和寫入此 URL 引用的資源。通常,創建一個到 URL 的連接需要幾個步驟:
openConnection() | connect() |
---|---|
對影響到遠程資源連接的參數進行操作。 | 與資源交互;查詢頭字段和內容。 |
時間
- 通過在 URL 上調用
openConnection
方法創建連接對象。 - 操作設置參數和一般請求屬性。
- 使用
connect
方法建立到遠程對象的實際連接。 - 遠程對象變爲可用。遠程對象的頭字段和內容變爲可訪問。
使用以下方法修改設置參數:
setAllowUserInteraction
setDoInput
setDoOutput
setIfModifiedSince
setUseCaches
使用以下方法修改一般請求屬性:
setRequestProperty
使用 setDefaultAllowUserInteraction
和 setDefaultUseCaches
可設置 AllowUserInteraction
和 UseCaches
參數的默認值。
上面每個 set
方法都有一個用於檢索參數值或一般請求屬性值的對應 get
方法。適用的具體參數和一般請求屬性取決於協議。
在建立到遠程對象的連接後,以下方法用於訪問頭字段和內容:
getContent
getHeaderField
getInputStream
getOutputStream
某些頭字段需要經常訪問。以下方法:
getContentEncoding
getContentLength
getContentType
getDate
getExpiration
getLastModifed
提供對這些字段的便捷訪問。getContent
方法使用 getContentType
方法以確定遠程對象類型;子類重寫 getContentType
方法很容易。
一般情況下,所有的預連接參數和一般請求屬性都可忽略:預連接參數和一般請求屬性默認爲敏感值。對於此接口的大多數客戶端而言,只有兩個感興趣的方法:getInputStream
和getContent
,它們通過便捷方法鏡像到 URL
類中。
有關 http
連接的請求屬性和頭字段的更多信息,可從以下位置找到:
有關http://www.ietf.org/rfc/rfc2068.txt
fileNameMap
的注意事項:在 JDK 1.1.6 以前的版本中,URLConnection
的 fileNameMap
爲公開字段。在 JDK 1.1.6 及以後的版本中,fileNameMap
爲私有;對其添加了 accessor 和 mutator 方法 getFileNameMap
及 setFileNameMap
以便訪問。Compatibility 頁中也對此更改進行了介紹。 完成請求後,在一個 URLConnection 的 InputStream 或 OutputStream 上調用 close()方法可能釋放與此實例相關的網絡資源,除非特定的協議規範爲其指定了其他行爲。- 從以下版本開始:
- JDK1.0
- 另請參見:
URL.openConnection()
,connect()
,getContent()
,getContentEncoding()
,getContentLength()
,getContentType()
,getDate()
,getExpiration()
,getHeaderField(int)
,getHeaderField(java.lang.String)
,getInputStream()
,getLastModified()
,getOutputStream()
,setAllowUserInteraction(boolean)
,setDefaultUseCaches(boolean)
,setDoInput(boolean)
,setDoOutput(boolean)
,setIfModifiedSince(long)
,setRequestProperty(java.lang.String, java.lang.String)
,setUseCaches(boolean)
字段摘要 | |
---|---|
protected boolean | allowUserInteraction 如果爲 true ,則在允許用戶交互(例如彈出一個身份驗證對話框)的上下文中對此 URL 進行檢查。 |
protected boolean | connected 如果爲 false ,則此連接對象尚未創建到指定 URL 的通信鏈接。 |
protected boolean | doInput 此變量由 setDoInput 方法設置。 |
protected boolean | doOutput 此變量由 setDoOutput 方法設置。 |
protected long | ifModifiedSince 有些協議支持跳過對象獲取,除非該對象在某個特定時間點之後又進行了修改。 |
protected URL | url URL 表示此連接要在互聯網上打開的遠程對象。 |
protected boolean | useCaches 如果爲 true ,則只要有條件就允許協議使用緩存。 |
構造方法摘要 | |
---|---|
protected | URLConnection(URL url) 構造一個到指定 URL 的 URL 連接。 |
方法摘要 | |
---|---|
void | addRequestProperty(String key, String value) 添加由鍵值對指定的一般請求屬性。 |
abstract void | connect() 打開到此 URL 引用的資源的通信鏈接(如果尚未建立這樣的連接)。 |
boolean | getAllowUserInteraction() 返回此對象的 allowUserInteraction 字段的值。 |
int | getConnectTimeout() 返回連接超時設置。 |
Object | getContent() 檢索此 URL 連接的內容。 |
Object | getContent(Class[] classes) 檢索此 URL 連接的內容。 |
String | getContentEncoding() 返回 content-encoding 頭字段的值。 |
int | getContentLength() 返回 content-length 頭字段的值。 |
String | getContentType() 返回 content-type 頭字段的值。 |
long | getDate() 返回 date 頭字段的值。 |
static boolean | getDefaultAllowUserInteraction() 返回 allowUserInteraction 字段的默認值。 |
static String | getDefaultRequestProperty(String key) 已過時。 應在獲得 URLConnection 的適當實例後使用特定 getRequestProperty 方法的實例。 |
boolean | getDefaultUseCaches() 返回 URLConnection 的 useCaches 標誌的默認值。 |
boolean | getDoInput() 返回此 URLConnection 的 doInput 標誌的值。 |
boolean | getDoOutput() 返回此 URLConnection 的 doOutput 標誌的值。 |
long | getExpiration() 返回 expires 頭字段的值。 |
static FileNameMap | getFileNameMap() 從數據文件加載文件名映射(一個 mimetable)。 |
String | getHeaderField(int n) 返回第 n 個頭字段的值。 |
String | getHeaderField(String name) 返回指定的頭字段的值。 |
long | getHeaderFieldDate(String name, long Default) 返回解析爲日期的指定字段的值。 |
int | getHeaderFieldInt(String name, int Default) 返回解析爲數字的指定字段的值。 |
String | getHeaderFieldKey(int n) 返回第 n 個頭字段的鍵。 |
Map<String,List<String>> | getHeaderFields() 返回頭字段的不可修改的 Map。 |
long | getIfModifiedSince() 返回此對象的 ifModifiedSince 字段的值。 |
InputStream | getInputStream() 返回從此打開的連接讀取的輸入流。 |
long | getLastModified() 返回 last-modified 頭字段的值。 |
OutputStream | getOutputStream() 返回寫入到此連接的輸出流。 |
Permission | getPermission() 返回一個權限對象,其代表建立此對象表示的連接所需的權限。 |
int | getReadTimeout() 返回讀入超時設置。 |
Map<String,List<String>> | getRequestProperties() 返回一個由此連接的一般請求屬性構成的不可修改的 Map。 |
String | getRequestProperty(String key) 返回此連接指定的一般請求屬性值。 |
URL | getURL() 返回此 URLConnection 的 URL 字段的值。 |
boolean | getUseCaches() 返回此 URLConnection 的 useCaches 字段的值。 |
static String | guessContentTypeFromName(String fname) 根據 URL 的指定 "file" 部分嘗試確定對象的內容類型。 |
static String | guessContentTypeFromStream(InputStream is) 根據輸入流的開始字符嘗試確定輸入流的類型。 |
void | setAllowUserInteraction(boolean allowuserinteraction) 設置此 URLConnection 的 allowUserInteraction 字段的值。 |
void | setConnectTimeout(int timeout) 設置一個指定的超時值(以毫秒爲單位),該值將在打開到此 URLConnection 引用的資源的通信鏈接時使用。 |
static void | setContentHandlerFactory(ContentHandlerFactory fac) 設置應用程序的 ContentHandlerFactory 。 |
static void | setDefaultAllowUserInteraction(boolean defaultallowuserinteraction) 將未來的所有 URLConnection 對象的 allowUserInteraction 字段的默認值設置爲指定的值。 |
static void | setDefaultRequestProperty(String key, String value) 已過時。 應在獲得 URLConnection 的適當實例後使用特定 setRequestProperty 方法的實例。調用此方法沒有任何作用。 |
void | setDefaultUseCaches(boolean defaultusecaches) 將 useCaches 字段的默認值設置爲指定的值。 |
void | setDoInput(boolean doinput) 將此 URLConnection 的 doInput 字段的值設置爲指定的值。 |
void | setDoOutput(boolean dooutput) 將此 URLConnection 的 doOutput 字段的值設置爲指定的值。 |
static void | setFileNameMap(FileNameMap map) 設置 FileNameMap。 |
void | setIfModifiedSince(long ifmodifiedsince) 將此 URLConnection 的 ifModifiedSince 字段的值設置爲指定的值。 |
void | setReadTimeout(int timeout) 將讀超時設置爲指定的超時,以毫秒爲單位。 |
void | setRequestProperty(String key, String value) 設置一般請求屬性。 |
void | setUseCaches(boolean usecaches) 將此 URLConnection 的 useCaches 字段的值設置爲指定的值。 |
String | toString() 返回此 URL 連接的 String 表示形式。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
字段詳細信息 |
---|
url
protected URL url
- URL 表示此連接要在互聯網上打開的遠程對象。
使用
getURL
方法可訪問此字段的值。此變量的默認值爲
URLConnection
構造方法中的 URL 參數的值。
doInput
protected boolean doInput
- 此變量由
setDoInput
方法設置。其值由getDoInput
方法返回。URL 連接可用於輸入和/或輸出。將
doInput
標誌設置爲true
,指示應用程序要從 URL 連接讀取數據。此字段的默認值爲
true
。
doOutput
protected boolean doOutput
- 此變量由
setDoOutput
方法設置。其值由getDoOutput
方法返回。URL 連接可用於輸入和/或輸出。將
doOutput
標誌設置爲true
,指示應用程序要將數據寫入 URL 連接。此字段的默認值爲
false
。
allowUserInteraction
protected boolean allowUserInteraction
- 如果爲
true
,則在允許用戶交互(例如彈出一個身份驗證對話框)的上下文中對此URL
進行檢查。如果爲false
,則不允許有任何用戶交互。使用
setAllowUserInteraction
方法可對此字段的值進行設置。其值由getAllowUserInteraction
方法返回。其默認值爲上一次調用setDefaultAllowUserInteraction
方法所用的參數的值。
useCaches
protected boolean useCaches
- 如果爲
true
,則只要有條件就允許協議使用緩存。如果爲false
,則該協議始終必須獲得此對象的新副本。此字段由
setUseCaches
方法設置。其值由getUseCaches
方法返回。其默認值爲上一次調用
setDefaultUseCaches
方法時給定的值。
ifModifiedSince
protected long ifModifiedSince
- 有些協議支持跳過對象獲取,除非該對象在某個特定時間點之後又進行了修改。
一個非零的值給定一個時間,它表示距離格林威治標準時間 1970 年 1 月 1 日的毫秒數。只有在該時間之後又進行了修改時,才獲取該對象。
此變量由
setIfModifiedSince
方法設置。其值由getIfModifiedSince
方法返回。此字段的默認值爲
0
,指示必須一直進行捕獲。
connected
protected boolean connected
- 如果爲
false
,則此連接對象尚未創建到指定 URL 的通信鏈接。如果爲true
,則已經建立了通信鏈接。
構造方法詳細信息 |
---|
URLConnection
protected URLConnection(URL url)
- 構造一個到指定 URL 的 URL 連接。不會創建到 URL 所引用的對象的連接。
- 參數:
url
- 指定的 URL。
方法詳細信息 |
---|
getFileNameMap
public static FileNameMap getFileNameMap()
- 從數據文件加載文件名映射(一個 mimetable)。它首先嚐試加載由 "content.types.user.table" 屬性定義的特定於用戶的表。如果加載失敗,它會嘗試加載位於 java 主目錄下的 lib/content-types.properties 中的默認內置表。
- 返回:
- FileNameMap
- 從以下版本開始:
- 1.2
- 另請參見:
setFileNameMap(java.net.FileNameMap)
setFileNameMap
public static void setFileNameMap(FileNameMap map)
- 設置 FileNameMap。
如果有安全管理器,此方法首先調用安全管理器的
checkSetFactory
方法以確保允許該操作。這可能會導致拋出 SecurityException 異常。 - 參數:
map
- 要設置的 FileNameMap- 拋出:
SecurityException
- 如果安全管理器存在並且其checkSetFactory
方法不允許進行此操作。- 從以下版本開始:
- 1.2
- 另請參見:
SecurityManager.checkSetFactory()
,getFileNameMap()
connect
public abstract void connect() throws IOException
- 打開到此 URL 引用的資源的通信鏈接(如果尚未建立這樣的連接)。
如果在已打開連接(此時
connected
字段的值爲true
)的情況下調用connect
方法,則忽略該調用。URLConnection 對象經歷兩個階段:首先創建對象,然後建立連接。在創建對象之後,建立連接之前,可指定各種選項(例如,doInput 和 UseCaches)。連接後再進行設置就會發生錯誤。連接後才能進行的操作(例如 getContentLength),如有必要,將隱式執行連接。
- 拋出:
SocketTimeoutException
- 如果在建立連接之前超時期滿IOException
- 如果打開連接時發生 I/O 錯誤。- 另請參見:
connected
,getConnectTimeout()
,setConnectTimeout(int)
setConnectTimeout
public void setConnectTimeout(int timeout)
- 設置一個指定的超時值(以毫秒爲單位),該值將在打開到此 URLConnection 引用的資源的通信鏈接時使用。如果在建立連接之前超時期滿,則會引發一個 java.net.SocketTimeoutException。超時時間爲零表示無窮大超時。
此方法的一些非標準實現可能忽略指定的超時。要查看連接超時設置,請調用 getConnectTimeout()。
- 參數:
timeout
- 一個指定連接超時值的int
,以毫秒爲單位- 拋出:
IllegalArgumentException
- 如果超時參數爲負- 從以下版本開始:
- 1.5
- 另請參見:
getConnectTimeout()
,connect()
getConnectTimeout
public int getConnectTimeout()
- 返回連接超時設置。
返回 0 表明該選項被禁用(即超時爲無窮大)。
- 返回:
- 一個指示連接超時值的
int
,以毫秒爲單位 - 從以下版本開始:
- 1.5
- 另請參見:
setConnectTimeout(int)
,connect()
setReadTimeout
public void setReadTimeout(int timeout)
- 將讀超時設置爲指定的超時,以毫秒爲單位。用一個非零值指定在建立到資源的連接後從 Input 流讀入時的超時時間。如果在數據可讀取之前超時期滿,則會引發一個 java.net.SocketTimeoutException。超時時間爲零表示無窮大超時。
此方法的一些非標準實現會忽略指定的超時。要查看讀入超時設置,請調用 getReadTimeout()。
- 參數:
timeout
- 一個指定要使用的超時值的int
,以毫秒爲單位- 拋出:
IllegalArgumentException
- 如果超時參數爲負- 從以下版本開始:
- 1.5
- 另請參見:
getReadTimeout()
,InputStream.read()
getReadTimeout
public int getReadTimeout()
- 返回讀入超時設置。返回 0 表明該選項被禁用(即超時爲無窮大)。
- 返回:
- 一個指示讀入超時值的
int
,以毫秒爲單位 - 從以下版本開始:
- 1.5
- 另請參見:
setReadTimeout(int)
,InputStream.read()
getURL
public URL getURL()
- 返回此
URLConnection
的URL
字段的值。 - 返回:
- 此
URLConnection
的URL
字段的值。 - 另請參見:
url
getContentLength
public int getContentLength()
- 返回
content-length
頭字段的值。 - 返回:
- 此連接的 URL 引用的資源的內容長度,或者如果內容長度未知,則返回
-1
。
getContentType
public String getContentType()
- 返回
content-type
頭字段的值。 - 返回:
- 該 URL 引用的資源的內容類型,或者如果類型爲未知,則返回
null
。 - 另請參見:
getHeaderField(java.lang.String)
getContentEncoding
public String getContentEncoding()
- 返回
content-encoding
頭字段的值。 - 返回:
- 該 URL 引用的資源的內容編碼,或者如果編碼爲未知,則返回
null
。 - 另請參見:
getHeaderField(java.lang.String)
getExpiration
public long getExpiration()
- 返回
expires
頭字段的值。 - 返回:
- 此 URL 引用的資源的期滿日期,或者如果爲未知,則返回 0。該值爲距離格林威治標準時間 1970 年 1 月 1 日的毫秒數。
- 另請參見:
getHeaderField(java.lang.String)
getDate
public long getDate()
- 返回
date
頭字段的值。 - 返回:
- 該 URL 引用的資源的發送日期,或者如果爲未知,則返回
0
。返回的值爲距離格林威治標準時間 1970 年 1 月 1 日的毫秒數。 - 另請參見:
getHeaderField(java.lang.String)
getLastModified
public long getLastModified()
- 返回
last-modified
頭字段的值。結果爲距離格林威治標準時間 1970 年 1 月 1 日的毫秒數。 - 返回:
- 此
URLConnection
引用的資源的上次修改日期,或者如果爲未知,則返回 0。 - 另請參見:
getHeaderField(java.lang.String)
getHeaderField
public String getHeaderField(String name)
- 返回指定的頭字段的值。
如果在連接上調用時多次設置頭字段的值,每次設置的值又可能不同,則只返回最後一個設置的值。
- 參數:
name
- 頭字段的名稱。- 返回:
- 指定的頭字段的值,或者如果頭中沒有這樣一個字段,則返回
null
。
getHeaderFields
public Map<String,List<String>> getHeaderFields()
- 返回頭字段的不可修改的 Map。Map 鍵是表示 response-header 字段名稱的 String。每個 Map 值爲一個不可修改的 String 的列表,它們代表相應的字段值。
- 返回:
- 頭字段的 Map
- 從以下版本開始:
- 1.4
getHeaderFieldInt
public int getHeaderFieldInt(String name, int Default)
- 返回解析爲數字的指定字段的值。
有些連接類型(例如
http-ng
)具有預解析頭,所以存在這種形式的getHeaderField
。用於這種連接類型的類可重寫此方法從而解析過程。 - 參數:
name
- 頭字段的名稱。Default
- 默認值。- 返回:
- 指定字段的值,解析爲整數。如果該字段缺少或有錯誤,則返回
Default
值。
getHeaderFieldDate
public long getHeaderFieldDate(String name, long Default)
- 返回解析爲日期的指定字段的值。結果爲指定字段表示的距離格林威治標準時間 1970 年 1 月 1 日的毫秒數。
有些連接類型(例如
http-ng
)具有預解析頭,所以存在這種形式的getHeaderField
。用於該類型的連接可重寫此方法和縮短解析過程。 - 參數:
name
- 頭字段的名稱。Default
- 默認值。- 返回:
- 字段的值,解析爲日期。如果該字段缺少或有錯誤,則返回
Default
參數的值。
getHeaderFieldKey
public String getHeaderFieldKey(int n)
- 返回第
n
個頭字段的鍵。如果少於n+1
個字段,則返回null
。 - 參數:
n
- 一個索引,n>=0- 返回:
- 對應第
n
個頭字段的鍵,或者如果少於n+1
個字段,則返回null
。
getHeaderField
public String getHeaderField(int n)
- 返回第
n
個頭字段的值。如果少於n+1
個字段,則返回null
。此方法可與
getHeaderFieldKey
方法配合使用,以迭代消息中的所有頭。 - 參數:
n
- 一個索引,n>=0- 返回:
- 第
n
個頭字段的值,或者如果少於n+1
個字段,則返回null
- 另請參見:
getHeaderFieldKey(int)
getContent
public Object getContent() throws IOException
- 檢索此 URL 連接的內容。
此方法首先通過調用
getContentType
方法確定對象的內容類型。如果這是該應用程序第一次遇到的特定內容類型,則會創建適用於該類型的內容處理程序:- 如果該應用程序已使用
setContentHandlerFactory
方法建立了內容處理程序工廠實例,則調用此實例的createContentHandler
方法,內容類型爲其中的一個參數;結果爲該內容類型的內容處理程序。 - 如果尚未建立任何內容處理程序工廠,或者如果工廠的
createContentHandler
方法返回null
,則應用程序會加載以下名稱的類:
其中,<contentType> 取自 content-type 字符串,將所有的斜槓字符用sun.net.www.content.<contentType>
句點
('.')替換,所有其他非字母數字字符用下劃線 '_
'替換。字母數字字符特指 26 個大寫 ASCII 字母 'A
' 到 'Z
',26 個小寫 ASCII 字母 'a
' 到 'z
'以及 10 個 ASCII 數字 '0
' 到 '9
'。如果指定的類不存在,或者不是ContentHandler
的子類,則拋出一個UnknownServiceException
。
- 如果該應用程序已使用
- 返回:
- 獲取的對象。應使用
instanceof
運算符來確定返回的對象的具體類型。 - 拋出:
IOException
- 如果獲取內容時發生 I/O 錯誤。UnknownServiceException
- 如果協議不支持內容類型。- 另請參見:
ContentHandlerFactory.createContentHandler(java.lang.String)
,getContentType()
,setContentHandlerFactory(java.net.ContentHandlerFactory)
getContent
public Object getContent(Class[] classes) throws IOException
- 檢索此 URL 連接的內容。
- 參數:
classes
- 指示請求的類型的Class
數組- 返回:
- 獲取的第一個與類數組中指定的類型相匹配的對象。如果請求的類型都不支持,則返回 null。應使用
instanceof
運算符來確定返回的對象的具體類型。 - 拋出:
IOException
- 如果獲取內容時發生 I/O 錯誤。UnknownServiceException
- 如果協議不支持內容類型。- 另請參見:
getContent()
,ContentHandlerFactory.createContentHandler(java.lang.String)
,getContent(java.lang.Class[])
,setContentHandlerFactory(java.net.ContentHandlerFactory)
getPermission
public Permission getPermission() throws IOException
- 返回一個權限對象,其代表建立此對象表示的連接所需的權限。如果建立連接不需要任何權限,則此方法返回 null。默認情況下,此方法返回
java.security.AllPermission
。子類應重寫此方法並返回一個權限對象,該對象最能代表用於建立到 URL 的連接所需的權限。例如表示file:
URL 的URLConnection
將返回java.io.FilePermission
對象。返回的權限可能取決於連接的狀態。例如,連接之前的權限可能不同於連接之後的權限。例如,一個 HTTP 服務器(如 foo.com)可能將連接重定向到一臺不同的主機(如 bar.com)。在連接之前,連接返回的權限將代表連接到 foo.com 所需的權限,而連接之後返回的權限將是連接到 bar.com 所需的權限。
使用權限通常有兩個目的:保護通過 URLConnection 獲取的對象的緩存;檢查接收方的權限以瞭解特定的 URL。第一種情況下,應在獲取對象之後 再獲取權限。例如,在一個 HTTP 連接中,這將代表連接到最終將從該主機獲取數據的主機的權限。第二種情況下,應在連接之前 對權限進行獲取和檢查。
- 返回:
- 代表建立此 URLConnection 表示的連接所需的權限的權限對象。
- 拋出:
IOException
- 如果計算權限需要網絡或文件 I/O 並且在計算過程中出現異常。
getInputStream
public InputStream getInputStream() throws IOException
- 返回從此打開的連接讀取的輸入流。 在讀取返回的輸入流時,如果在數據可供讀取之前達到讀入超時時間,則會拋出 SocketTimeoutException。
- 返回:
- 從此打開的連接讀入的輸入流。
- 拋出:
IOException
- 如果在創建輸入流時發生 I/O 錯誤。UnknownServiceException
- 如果協議不支持輸入。- 另請參見:
setReadTimeout(int)
,getReadTimeout()
getOutputStream
public OutputStream getOutputStream() throws IOException
- 返回寫入到此連接的輸出流。
- 返回:
- 寫入到此連接的輸出流。
- 拋出:
IOException
- 如果在創建輸出流時發生 I/O 錯誤。UnknownServiceException
- 如果協議不支持輸出。
toString
public String toString()
setDoInput
public void setDoInput(boolean doinput)
- 將此
URLConnection
的doInput
字段的值設置爲指定的值。URL 連接可用於輸入和/或輸出。如果打算使用 URL 連接進行輸入,則將 DoInput 標誌設置爲 true;如果不打算使用,則設置爲 false。默認值爲 true。
- 參數:
doinput
- 新值。- 拋出:
IllegalStateException
- 如果已連接- 另請參見:
doInput
,getDoInput()
getDoInput
public boolean getDoInput()
- 返回此
URLConnection
的doInput
標誌的值。 - 返回:
- 此
URLConnection
的doInput
標誌的值。 - 另請參見:
setDoInput(boolean)
setDoOutput
public void setDoOutput(boolean dooutput)
- 將此
URLConnection
的doOutput
字段的值設置爲指定的值。URL 連接可用於輸入和/或輸出。如果打算使用 URL 連接進行輸出,則將 DoOutput 標誌設置爲 true;如果不打算使用,則設置爲 false。默認值爲 false。
- 參數:
dooutput
- 新值。- 拋出:
IllegalStateException
- 如果已連接- 另請參見:
getDoOutput()
getDoOutput
public boolean getDoOutput()
- 返回此
URLConnection
的doOutput
標誌的值。 - 返回:
- 此
URLConnection
的doOutput
標誌的值。 - 另請參見:
setDoOutput(boolean)
setAllowUserInteraction
public void setAllowUserInteraction(boolean allowuserinteraction)
- 設置此
URLConnection
的allowUserInteraction
字段的值。 - 參數:
allowuserinteraction
- 新值。- 拋出:
IllegalStateException
- 如果已連接- 另請參見:
getAllowUserInteraction()
getAllowUserInteraction
public boolean getAllowUserInteraction()
- 返回此對象的
allowUserInteraction
字段的值。 - 返回:
- 此對象的
allowUserInteraction
字段的值。 - 另請參見:
setAllowUserInteraction(boolean)
setDefaultAllowUserInteraction
public static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
- 將未來的所有
URLConnection
對象的allowUserInteraction
字段的默認值設置爲指定的值。 - 參數:
defaultallowuserinteraction
- 新值。- 另請參見:
getDefaultAllowUserInteraction()
getDefaultAllowUserInteraction
public static boolean getDefaultAllowUserInteraction()
- 返回
allowUserInteraction
字段的默認值。默認值爲 "sticky",它是所有 URLConnection 的其中一種靜態狀態。此標誌適用於下一個及後續創建的所有 URLConnection。
- 返回:
allowUserInteraction
字段的默認值。- 另請參見:
setDefaultAllowUserInteraction(boolean)
setUseCaches
public void setUseCaches(boolean usecaches)
- 將此
URLConnection
的useCaches
字段的值設置爲指定的值。有些協議用於文檔緩存。有時候能夠進行“直通”並忽略緩存尤其重要,例如瀏覽器中的“重新加載”按鈕。如果連接中的 UseCaches 標誌爲 true,則允許連接使用任何可用的緩存。如果爲 false,則忽略緩存。默認值來自 DefaultUseCaches,它默認爲 true。
- 參數:
usecaches
- 一個指示是否允許緩存的boolean
值- 拋出:
IllegalStateException
- 如果已連接- 另請參見:
getUseCaches()
getUseCaches
public boolean getUseCaches()
- 返回此
URLConnection
的useCaches
字段的值。 - 返回:
- 此
URLConnection
的useCaches
字段的值。 - 另請參見:
setUseCaches(boolean)
setIfModifiedSince
public void setIfModifiedSince(long ifmodifiedsince)
- 將此
URLConnection
的ifModifiedSince
字段的值設置爲指定的值。 - 參數:
ifmodifiedsince
- 新值。- 拋出:
IllegalStateException
- 如果已連接- 另請參見:
getIfModifiedSince()
getIfModifiedSince
public long getIfModifiedSince()
- 返回此對象的
ifModifiedSince
字段的值。 - 返回:
- 此對象的
ifModifiedSince
字段的值。 - 另請參見:
setIfModifiedSince(long)
getDefaultUseCaches
public boolean getDefaultUseCaches()
- 返回
URLConnection
的useCaches
標誌的默認值。默認值爲 "sticky",它屬於所有 URLConnection 的靜態中的一部分。此標誌適用於所有文本以及後續創建的所有 URLConnection。
- 返回:
URLConnection
的useCaches
標誌的默認值。- 另請參見:
setDefaultUseCaches(boolean)
setDefaultUseCaches
public void setDefaultUseCaches(boolean defaultusecaches)
- 將
useCaches
字段的默認值設置爲指定的值。 - 參數:
defaultusecaches
- 新值。- 另請參見:
getDefaultUseCaches()
setRequestProperty
public void setRequestProperty(String key, String value)
- 設置一般請求屬性。如果已存在具有該關鍵字的屬性,則用新值改寫其值。
注:HTTP 要求所有能夠合法擁有多個具有相同鍵的實例的請求屬性,使用以逗號分隔的列表語法,這樣可實現將多個屬性添加到一個屬性中。
- 參數:
key
- 用於識別請求的關鍵字(例如,"accept
")。value
- 與該鍵關聯的值。- 拋出:
IllegalStateException
- 如果已連接NullPointerException
- 如果鍵爲null
- 另請參見:
getRequestProperty(java.lang.String)
addRequestProperty
public void addRequestProperty(String key, String value)
- 添加由鍵值對指定的一般請求屬性。此方法不會改寫與相同鍵關聯的現有值。
- 參數:
key
- 用於識別請求的關鍵字(例如,"accept
")。value
- 與該鍵關聯的值。- 拋出:
IllegalStateException
- 如果已連接NullPointerException
- 如果鍵爲 null- 從以下版本開始:
- 1.4
- 另請參見:
getRequestProperties()
getRequestProperty
public String getRequestProperty(String key)
- 返回此連接指定的一般請求屬性值。
- 參數:
key
- 用於識別請求的關鍵字(例如,"accept")。- 返回:
- 此連接指定的一般請求屬性值。如果鍵爲 null,則返回 null。
- 拋出:
IllegalStateException
- 如果已連接- 另請參見:
setRequestProperty(java.lang.String, java.lang.String)
getRequestProperties
public Map<String,List<String>> getRequestProperties()
- 返回一個由此連接的一般請求屬性構成的不可修改的 Map。Map 鍵是一些表示 request-header 字段名稱的 String。每個 Map 值爲一個不可修改的 String 的列表,它代表相應的字段值。
- 返回:
- 此連接的一般請求屬性的 Map。
- 拋出:
IllegalStateException
- 如果已連接- 從以下版本開始:
- 1.4
setDefaultRequestProperty
@Deprecated public static void setDefaultRequestProperty(String key, String value)
- 已過時。 應在獲得 URLConnection 的適當實例後使用特定 setRequestProperty 方法的實例。調用此方法沒有任何作用。
- 設置一般請求屬性的默認值。創建
URLConnection
時,用這些屬性進行初始化。 - 參數:
key
- 用於識別請求的關鍵字(例如,"accept
")。value
- 與該鍵關聯的值。- 另請參見:
setRequestProperty(java.lang.String,java.lang.String)
,getDefaultRequestProperty(java.lang.String)
getDefaultRequestProperty
@Deprecated public static String getDefaultRequestProperty(String key)
- 已過時。 應在獲得 URLConnection 的適當實例後使用特定 getRequestProperty 方法的實例。
- 返回默認請求屬性的值。爲每個連接都設置了默認請求屬性。
- 參數:
key
- 用於識別請求的關鍵字(例如,"accept")。- 返回:
- 指定的鍵的默認請求屬性的值。
- 另請參見:
getRequestProperty(java.lang.String)
,setDefaultRequestProperty(java.lang.String, java.lang.String)
setContentHandlerFactory
public static void setContentHandlerFactory(ContentHandlerFactory fac)
- 設置應用程序的
ContentHandlerFactory
。一個應用程序最多隻能調用一次該方法。ContentHandlerFactory
實例用於根據內容類型構造內容處理程序。如果有安全管理器,此方法首先調用安全管理器的
checkSetFactory
方法以確保允許該操作。這可能會導致 SecurityException 異常。 - 參數:
fac
- 需要的工廠。- 拋出:
Error
- 如果已經定義了工廠。SecurityException
- 如果安全管理器存在並且其checkSetFactory
方法不允許進行此操作。- 另請參見:
ContentHandlerFactory
,getContent()
,SecurityManager.checkSetFactory()
guessContentTypeFromName
public static String guessContentTypeFromName(String fname)
- 根據 URL 的指定 "file" 部分嘗試確定對象的內容類型。重寫
getContentType
方法的子類可使用該便捷方法。 - 參數:
fname
- 文件名。- 返回:
- 基於文件名對對象的內容類型的猜測。
- 另請參見:
getContentType()
guessContentTypeFromStream
public static String guessContentTypeFromStream(InputStream is) throws IOException
- 根據輸入流的開始字符嘗試確定輸入流的類型。此方法可供重寫
getContentType
方法的子類使用。理想情況下,將不需要此例程。但是許多
http
服務器返回不正確的內容類型;另外,還存在許多非標準擴展。通過對字節直接觀察來確定內容類型比相信http
服務器聲明的內容類型更準確。 - 參數:
is
- 支持標記的輸入流。- 返回:
- 對內容類型的猜測,如果無法確定,則返回
null
。 - 拋出:
IOException
- 如果在讀取輸入流時發生 I/O 錯誤。- 另請參見:
InputStream.mark(int)
,InputStream.markSupported()
,getContentType()