HttpURLConnection API 使用手冊

java.net 
類 URLConnection

java.lang.Object
  java.net.URLConnection
直接已知子類:
HttpURLConnectionJarURLConnection

public abstract class URLConnection
extends Object

抽象類 URLConnection 是所有類的超類,它代表應用程序和 URL 之間的通信鏈接。此類的實例可用於讀取和寫入此 URL 引用的資源。通常,創建一個到 URL 的連接需要幾個步驟:

openConnection()connect()
對影響到遠程資源連接的參數進行操作。與資源交互;查詢頭字段和內容。
----------------------------> 
時間
  1. 通過在 URL 上調用 openConnection 方法創建連接對象。
  2. 操作設置參數和一般請求屬性。
  3. 使用 connect 方法建立到遠程對象的實際連接。
  4. 遠程對象變爲可用。遠程對象的頭字段和內容變爲可訪問。

使用以下方法修改設置參數:

  • 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  booleanallowUserInteraction 
          如果爲 true,則在允許用戶交互(例如彈出一個身份驗證對話框)的上下文中對此 URL 進行檢查。
protected  booleanconnected 
          如果爲 false,則此連接對象尚未創建到指定 URL 的通信鏈接。
protected  booleandoInput 
          此變量由 setDoInput 方法設置。
protected  booleandoOutput 
          此變量由 setDoOutput 方法設置。
protected  longifModifiedSince 
          有些協議支持跳過對象獲取,除非該對象在某個特定時間點之後又進行了修改。
protected  URLurl 
          URL 表示此連接要在互聯網上打開的遠程對象。
protected  booleanuseCaches 
          如果爲 true,則只要有條件就允許協議使用緩存。
 
構造方法摘要
protectedURLConnection(URL url) 
          構造一個到指定 URL 的 URL 連接。
 
方法摘要
 voidaddRequestProperty(String key, String value) 
          添加由鍵值對指定的一般請求屬性。
abstract  voidconnect() 
          打開到此 URL 引用的資源的通信鏈接(如果尚未建立這樣的連接)。
 booleangetAllowUserInteraction() 
          返回此對象的 allowUserInteraction 字段的值。
 intgetConnectTimeout() 
          返回連接超時設置。
 ObjectgetContent() 
          檢索此 URL 連接的內容。
 ObjectgetContent(Class[] classes) 
          檢索此 URL 連接的內容。
 StringgetContentEncoding() 
          返回 content-encoding 頭字段的值。
 intgetContentLength() 
          返回 content-length 頭字段的值。
 StringgetContentType() 
          返回 content-type 頭字段的值。
 longgetDate() 
          返回 date 頭字段的值。
static booleangetDefaultAllowUserInteraction() 
          返回 allowUserInteraction 字段的默認值。
static StringgetDefaultRequestProperty(String key) 
          已過時。 應在獲得 URLConnection 的適當實例後使用特定 getRequestProperty 方法的實例。
 booleangetDefaultUseCaches() 
          返回 URLConnection 的 useCaches 標誌的默認值。
 booleangetDoInput() 
          返回此 URLConnection 的 doInput 標誌的值。
 booleangetDoOutput() 
          返回此 URLConnection 的 doOutput 標誌的值。
 longgetExpiration() 
          返回 expires 頭字段的值。
static FileNameMapgetFileNameMap() 
          從數據文件加載文件名映射(一個 mimetable)。
 StringgetHeaderField(int n) 
          返回第 n 個頭字段的值。
 StringgetHeaderField(String name) 
          返回指定的頭字段的值。
 longgetHeaderFieldDate(String name, long Default) 
          返回解析爲日期的指定字段的值。
 intgetHeaderFieldInt(String name, int Default) 
          返回解析爲數字的指定字段的值。
 StringgetHeaderFieldKey(int n) 
          返回第 n 個頭字段的鍵。
 Map<String,List<String>>getHeaderFields() 
          返回頭字段的不可修改的 Map。
 longgetIfModifiedSince() 
          返回此對象的 ifModifiedSince 字段的值。
 InputStreamgetInputStream() 
          返回從此打開的連接讀取的輸入流。
 longgetLastModified() 
          返回 last-modified 頭字段的值。
 OutputStreamgetOutputStream() 
          返回寫入到此連接的輸出流。
 PermissiongetPermission() 
          返回一個權限對象,其代表建立此對象表示的連接所需的權限。
 intgetReadTimeout() 
          返回讀入超時設置。
 Map<String,List<String>>getRequestProperties() 
          返回一個由此連接的一般請求屬性構成的不可修改的 Map。
 StringgetRequestProperty(String key) 
          返回此連接指定的一般請求屬性值。
 URLgetURL() 
          返回此 URLConnection 的 URL 字段的值。
 booleangetUseCaches() 
          返回此 URLConnection 的 useCaches 字段的值。
static StringguessContentTypeFromName(String fname) 
          根據 URL 的指定 "file" 部分嘗試確定對象的內容類型。
static StringguessContentTypeFromStream(InputStream is) 
          根據輸入流的開始字符嘗試確定輸入流的類型。
 voidsetAllowUserInteraction(boolean allowuserinteraction) 
          設置此 URLConnection 的 allowUserInteraction 字段的值。
 voidsetConnectTimeout(int timeout) 
          設置一個指定的超時值(以毫秒爲單位),該值將在打開到此 URLConnection 引用的資源的通信鏈接時使用。
static voidsetContentHandlerFactory(ContentHandlerFactory fac) 
          設置應用程序的 ContentHandlerFactory
static voidsetDefaultAllowUserInteraction(boolean defaultallowuserinteraction) 
          將未來的所有 URLConnection 對象的 allowUserInteraction 字段的默認值設置爲指定的值。
static voidsetDefaultRequestProperty(String key, String value) 
          已過時。 應在獲得 URLConnection 的適當實例後使用特定 setRequestProperty 方法的實例。調用此方法沒有任何作用。
 voidsetDefaultUseCaches(boolean defaultusecaches) 
          將 useCaches 字段的默認值設置爲指定的值。
 voidsetDoInput(boolean doinput) 
          將此 URLConnection 的 doInput 字段的值設置爲指定的值。
 voidsetDoOutput(boolean dooutput) 
          將此 URLConnection 的 doOutput 字段的值設置爲指定的值。
static voidsetFileNameMap(FileNameMap map) 
          設置 FileNameMap。
 voidsetIfModifiedSince(long ifmodifiedsince) 
          將此 URLConnection 的 ifModifiedSince 字段的值設置爲指定的值。
 voidsetReadTimeout(int timeout) 
          將讀超時設置爲指定的超時,以毫秒爲單位。
 voidsetRequestProperty(String key, String value) 
          設置一般請求屬性。
 voidsetUseCaches(boolean usecaches) 
          將此 URLConnection 的 useCaches 字段的值設置爲指定的值。
 StringtoString() 
          返回此 URL 連接的 String 表示形式。
 
從類 java.lang.Object 繼承的方法
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait
 

字段詳細信息

url

protected URL url
URL 表示此連接要在互聯網上打開的遠程對象。

使用 getURL 方法可訪問此字段的值。

此變量的默認值爲 URLConnection 構造方法中的 URL 參數的值。

另請參見:
getURL()url

doInput

protected boolean doInput
此變量由 setDoInput 方法設置。其值由 getDoInput 方法返回。

URL 連接可用於輸入和/或輸出。將 doInput 標誌設置爲 true,指示應用程序要從 URL 連接讀取數據。

此字段的默認值爲 true

另請參見:
getDoInput()setDoInput(boolean)

doOutput

protected boolean doOutput
此變量由 setDoOutput 方法設置。其值由 getDoOutput 方法返回。

URL 連接可用於輸入和/或輸出。將 doOutput 標誌設置爲 true,指示應用程序要將數據寫入 URL 連接。

此字段的默認值爲 false

另請參見:
getDoOutput()setDoOutput(boolean)

allowUserInteraction

protected boolean allowUserInteraction
如果爲 true,則在允許用戶交互(例如彈出一個身份驗證對話框)的上下文中對此 URL 進行檢查。如果爲 false,則不允許有任何用戶交互。

使用 setAllowUserInteraction 方法可對此字段的值進行設置。其值由 getAllowUserInteraction 方法返回。其默認值爲上一次調用 setDefaultAllowUserInteraction 方法所用的參數的值。

另請參見:
getAllowUserInteraction()setAllowUserInteraction(boolean)setDefaultAllowUserInteraction(boolean)

useCaches

protected boolean useCaches
如果爲 true,則只要有條件就允許協議使用緩存。如果爲 false,則該協議始終必須獲得此對象的新副本。

此字段由 setUseCaches 方法設置。其值由 getUseCaches 方法返回。

其默認值爲上一次調用 setDefaultUseCaches 方法時給定的值。

另請參見:
setUseCaches(boolean)getUseCaches()setDefaultUseCaches(boolean)

ifModifiedSince

protected long ifModifiedSince
有些協議支持跳過對象獲取,除非該對象在某個特定時間點之後又進行了修改。

一個非零的值給定一個時間,它表示距離格林威治標準時間 1970 年 1 月 1 日的毫秒數。只有在該時間之後又進行了修改時,才獲取該對象。

此變量由 setIfModifiedSince 方法設置。其值由 getIfModifiedSince 方法返回。

此字段的默認值爲 0,指示必須一直進行捕獲。

另請參見:
getIfModifiedSince()setIfModifiedSince(long)

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 錯誤。
另請參見:
connectedgetConnectTimeout()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 方法確定對象的內容類型。如果這是該應用程序第一次遇到的特定內容類型,則會創建適用於該類型的內容處理程序:

  1. 如果該應用程序已使用 setContentHandlerFactory 方法建立了內容處理程序工廠實例,則調用此實例的 createContentHandler 方法,內容類型爲其中的一個參數;結果爲該內容類型的內容處理程序。
  2. 如果尚未建立任何內容處理程序工廠,或者如果工廠的 createContentHandler 方法返回 null,則應用程序會加載以下名稱的類:
             sun.net.www.content.<contentType>
         
    其中,<contentType> 取自 content-type 字符串,將所有的斜槓字符用 句點 ('.')替換,所有其他非字母數字字符用下劃線 '_'替換。字母數字字符特指 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()
返回此 URL 連接的 String 表示形式。

覆蓋:
類 Object 中的 toString
返回:
此 URLConnection 的字符串表示形式。

setDoInput

public void setDoInput(boolean doinput)
將此 URLConnection 的 doInput 字段的值設置爲指定的值。

URL 連接可用於輸入和/或輸出。如果打算使用 URL 連接進行輸入,則將 DoInput 標誌設置爲 true;如果不打算使用,則設置爲 false。默認值爲 true。

參數:
doinput - 新值。
拋出:
IllegalStateException - 如果已連接
另請參見:
doInputgetDoInput()

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 方法不允許進行此操作。
另請參見:
ContentHandlerFactorygetContent()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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章