JavaTM 2 Platform
Standard Ed. 6

java.net
類別 URLConnection

java.lang.Object
  繼承者 java.net.URLConnection
直接已知子類別:
HttpURLConnection, JarURLConnection

public abstract class URLConnection
extends Object

抽象類別 URLConnection 是全部類別的父級類別,它代表應用程序和 URL 之間的通信連接。此類別的實例可用於讀取和寫入此 URL 參考的資源。通常,創建一個到 URL 的連接需要幾個步驟:

openConnection() connect()
對影響到遠端資源連接的參數進行操作。 與資源交互;查詢頭欄位和內容。
---------------------------->
時間
  1. 通過在 URL 上調用 openConnection 方法創建連接物件。
  2. 處理設置參數和一般請求屬性。
  3. 使用 connect 方法建立到遠端物件的實際連接。
  4. 遠端物件變為可用。遠端物件的頭欄位和內容變為可存取。

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

使用以下方法修改一般請求屬性:

使用 setDefaultAllowUserInteractionsetDefaultUseCaches 可設置 AllowUserInteractionUseCaches 參數的預設值。

上面每個 set 方法都有一個用於獲取參數值或一般請求屬性值的對應 get 方法。適用的具體參數和一般請求屬性取決於協議。

在建立到遠端物件的連接後,以下方法用於存取頭欄位和內容:

某些頭欄位需要經常存取。以下方法:

提供對這些欄位的便捷存取。getContent 方法使用 getContentType 方法以確定遠端物件型別;子類別覆寫 getContentType 方法很容易。

一般情況下,所有的預連接參數和一般請求屬性都可忽略:預連接參數和一般請求屬性預設為敏感值。對於此介面的大多數客戶端而言,只有兩個需要的方法:getInputStreamgetContent,它們通過便捷方法鏡像到 URL 類別中。

有關 http 連接的請求屬性和頭欄位的更多資訊,可從以下位置找到:

 http://www.ietf.org/rfc/rfc2068.txt
 
有關 fileNameMap 的注意事項:在 JDK 1.1.6 以前的版本中,URLConnectionfileNameMap 欄位是公共的。在 JDK 1.1.6 及以後的版本中,fileNameMap 欄位是私有的;對其添加了 accessor 方法和 mutator 方法 getFileNameMapsetFileNameMap 以便存取。Compatibility 頁中也對此更改進行了介紹。 完成請求後,在一個 URLConnectionInputStreamOutputStream 上調用 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()
          返回 URLConnectionuseCaches 標誌的預設值。
 boolean getDoInput()
          返回此 URLConnectiondoInput 標誌的值。
 boolean getDoOutput()
          返回此 URLConnectiondoOutput 標誌的值。
 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()
          返回此 URLConnectionURL 欄位的值。
 boolean getUseCaches()
          返回此 URLConnectionuseCaches 欄位的值。
static String guessContentTypeFromName(String fname)
          根據 URL 的指定 "file" 部分嘗試確定物件的內容型別。
static String guessContentTypeFromStream(InputStream is)
          根據輸入串流的開始字元嘗試確定輸入串流的型別。
 void setAllowUserInteraction(boolean allowuserinteraction)
          設置此 URLConnectionallowUserInteraction 欄位的值。
 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)
          將此 URLConnectiondoInput 欄位的值設置為指定的值。
 void setDoOutput(boolean dooutput)
          將此 URLConnectiondoOutput 欄位的值設置為指定的值。
static void setFileNameMap(FileNameMap map)
          設置 FileNameMap。
 void setIfModifiedSince(long ifmodifiedsince)
          將此 URLConnectionifModifiedSince 欄位的值設置為指定的值。
 void setReadTimeout(int timeout)
          將讀逾時設置為指定的逾時值,以毫秒為單位。
 void setRequestProperty(String key, String value)
          設置一般請求屬性。
 void setUseCaches(boolean usecaches)
          將此 URLConnectionuseCaches 欄位的值設置為指定的值。
 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 參數的值。

另請參見:
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 錯誤。
另請參見:
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()
返回此 URLConnectionURL 欄位的值。

返回:
URLConnectionURL 欄位的值。
另請參見:
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 - 如果協議不支持內容型別。
從以下版本開始:
1.3
另請參見:
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)
將此 URLConnectiondoInput 欄位的值設置為指定的值。

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

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

getDoInput

public boolean getDoInput()
返回此 URLConnectiondoInput 標誌的值。

返回:
URLConnectiondoInput 標誌的值。
另請參見:
setDoInput(boolean)

setDoOutput

public void setDoOutput(boolean dooutput)
將此 URLConnectiondoOutput 欄位的值設置為指定的值。

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

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

getDoOutput

public boolean getDoOutput()
返回此 URLConnectiondoOutput 標誌的值。

返回:
URLConnectiondoOutput 標誌的值。
另請參見:
setDoOutput(boolean)

setAllowUserInteraction

public void setAllowUserInteraction(boolean allowuserinteraction)
設置此 URLConnectionallowUserInteraction 欄位的值。

參數:
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)
將此 URLConnectionuseCaches 欄位的值設置為指定的值。

有些協議用於文檔快取記憶體。有時候能夠進行“直通”並忽略快取記憶體尤其重要,例如瀏覽器中的“重新載入”按鈕。如果連接中的 UseCaches 標誌為 true,則允許連接使用任何可用的快取記憶體。如果為 false,則忽略快取記憶體。預設值來自 DefaultUseCaches,它預設為 true。

參數:
usecaches - 一個指示是否允許快取記憶體的 boolean
拋出:
IllegalStateException - 如果已連接
另請參見:
getUseCaches()

getUseCaches

public boolean getUseCaches()
返回此 URLConnectionuseCaches 欄位的值。

返回:
URLConnectionuseCaches 欄位的值。
另請參見:
setUseCaches(boolean)

setIfModifiedSince

public void setIfModifiedSince(long ifmodifiedsince)
將此 URLConnectionifModifiedSince 欄位的值設置為指定的值。

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

getIfModifiedSince

public long getIfModifiedSince()
返回此物件的 ifModifiedSince 欄位的值。

返回:
此物件的 ifModifiedSince 欄位的值。
另請參見:
setIfModifiedSince(long)

getDefaultUseCaches

public boolean getDefaultUseCaches()
返回 URLConnectionuseCaches 標誌的預設值。

預設值為 "sticky",它是所有 URLConnection 的一個靜態狀態。此標誌適用於下一個及後續創建的所有 URLConnection。

返回:
URLConnectionuseCaches 標誌的預設值。
另請參見:
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()

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only