鴻蒙OS HttpURLConnection

2022-06-08 15:38 更新

HttpURLConnection

java.lang.Object

|---java.net.URLConnection

|---|---java.net.HttpURLConnection

public abstract class HttpURLConnection
extends URLConnection

支持 HTTP 特定功能的 URLConnection。 有關(guān)詳細(xì)信息,請參閱規(guī)范。

每個 HttpURLConnection 實例用于發(fā)出單個請求,但到 HTTP 服務(wù)器的底層網(wǎng)絡(luò)連接可能會被其他實例透明地共享。 在請求之后對 HttpURLConnection 的 InputStream 或 OutputStream 調(diào)用 close() 方法可能會釋放與此實例關(guān)聯(lián)的網(wǎng)絡(luò)資源,但不會影響任何共享的持久連接。 如果持續(xù)連接當(dāng)時處于空閑狀態(tài),則調(diào)用 disconnect() 方法可能會關(guān)閉底層套接字。

HTTP 協(xié)議處理程序有一些可以通過系統(tǒng)屬性訪問的設(shè)置。 這包括代理設(shè)置以及各種其他設(shè)置。

安全權(quán)限

如果安裝了安全管理器,并且調(diào)用了導(dǎo)致嘗試打開連接的方法,則調(diào)用者必須擁有:-

  • 連接到目標(biāo) URL 的主機(jī)/端口組合的 SocketPermission 或
  • 允許此請求的 URLPermission。

如果啟用了自動重定向,并且此請求被重定向到另一個目的地,那么調(diào)用者還必須有權(quán)連接到重定向的主機(jī)/URL。

字段摘要

修飾符和類型 字段 描述
protected int chunkLength 使用分塊編碼流模式進(jìn)行輸出時的塊長度。
protected int fixedContentLength 使用固定長度流模式時的固定內(nèi)容長度。
protected long fixedContentLengthLong 使用固定長度流模式時的固定內(nèi)容長度。
static int HTTP_ACCEPTED HTTP 狀態(tài)碼 202:已接受。
static int HTTP_BAD_GATEWAY HTTP 狀態(tài)碼 502:網(wǎng)關(guān)錯誤。
static int HTTP_BAD_METHOD HTTP 狀態(tài)碼 405:不允許的方法。
static int HTTP_BAD_REQUEST HTTP 狀態(tài)碼 400:錯誤請求。
static int HTTP_CLIENT_TIMEOUT HTTP 狀態(tài)碼 408:請求超時。
static int HTTP_CONFLICT HTTP 狀態(tài)碼 409:沖突。
static int HTTP_CREATED HTTP 狀態(tài)碼 201:已創(chuàng)建。
static int HTTP_ENTITY_TOO_LARGE HTTP 狀態(tài)碼 413:請求實體太大。
static int HTTP_FORBIDDEN HTTP 狀態(tài)碼 403:禁止。
static int HTTP_GATEWAY_TIMEOUT HTTP 狀態(tài)碼 504:網(wǎng)關(guān)超時。
static int HTTP_GONE HTTP 狀態(tài)碼 410:已消失。
static int HTTP_INTERNAL_ERROR HTTP 狀態(tài)碼 500:內(nèi)部服務(wù)器錯誤。
static int HTTP_LENGTH_REQUIRED HTTP 狀態(tài)碼 411:長度要求。
static int HTTP_MOVED_PERM HTTP 狀態(tài)碼 301:永久移動。
static int HTTP_MOVED_TEMP HTTP 狀態(tài)碼 302:臨時重定向。
static int HTTP_MULT_CHOICE HTTP 狀態(tài)碼 300:多項選擇。
static int HTTP_NO_CONTENT HTTP 狀態(tài)碼 204:無內(nèi)容。
static int HTTP_NOT_ACCEPTABLE HTTP 狀態(tài)碼 406:不可接受。
static int HTTP_NOT_AUTHORITATIVE HTTP 狀態(tài)碼 203:非權(quán)威信息。
static int HTTP_NOT_FOUND HTTP 狀態(tài)碼 404:未找到。
static int HTTP_NOT_IMPLEMENTED HTTP 狀態(tài)碼 501:未實現(xiàn)。
static int HTTP_NOT_MODIFIED HTTP 狀態(tài)碼 304:未修改。
static int HTTP_OK HTTP 狀態(tài)碼 200:正常。
static int HTTP_PARTIAL HTTP 狀態(tài)碼 206:部分內(nèi)容。
static int HTTP_PAYMENT_REQUIRED HTTP 狀態(tài)碼 402:需要付款。
static int HTTP_PRECON_FAILED HTTP 狀態(tài)碼 412:前提條件失敗。
static int HTTP_PROXY_AUTH HTTP 狀態(tài)碼 407:需要代理身份驗證。
static int HTTP_REQ_TOO_LONG HTTP 狀態(tài)碼 414:請求 URI 太大。
static int HTTP_RESET HTTP 狀態(tài)碼 205:重置內(nèi)容。
static int HTTP_SEE_OTHER HTTP 狀態(tài)碼 303:請參閱其他。
static int HTTP_SERVER_ERROR 已棄用。 它放錯了地方,不應(yīng)該存在。
static int HTTP_UNAUTHORIZED HTTP 狀態(tài)碼 401:未經(jīng)授權(quán)。
static int HTTP_UNAVAILABLE HTTP 狀態(tài)碼 503:服務(wù)不可用。
static int HTTP_UNSUPPORTED_TYPE HTTP 狀態(tài)碼 415:不支持的媒體類型。
static int HTTP_USE_PROXY HTTP 狀態(tài)碼 305:使用代理。
static int HTTP_VERSION HTTP 狀態(tài)碼 505:不支持 HTTP 版本。
protected boolean instanceFollowRedirects 如果為真,協(xié)議將自動遵循重定向。
protected String method HTTP 方法(GET、POST、PUT 等)。
protected int responseCode 一個表示三位 HTTP 狀態(tài)碼的 int。
protected String responseMessage HTTP 響應(yīng)消息。
從類 java.net.URLConnection 繼承的字段
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches

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

修飾符 構(gòu)造函數(shù) 描述
protected HttpURLConnection(URL u) HttpURLConnection 的構(gòu)造函數(shù)。

方法總結(jié)

修飾符和類型 方法 描述
abstract void disconnect() 表示在不久的將來不太可能向服務(wù)器發(fā)出其他請求。
InputStream getErrorStream() 如果連接失敗但服務(wù)器仍然發(fā)送了有用的數(shù)據(jù),則返回錯誤流。
static boolean getFollowRedirects() 返回一個布爾值,指示是否應(yīng)自動遵循 HTTP 重定向 (3xx)。
String getHeaderField(int n) 返回第 n 個標(biāo)頭字段的值。
long getHeaderFieldDate(String name, long Default) 返回解析為日期的命名字段的值。
String getHeaderFieldKey(int n) 返回第 n 個標(biāo)頭字段的鍵。
boolean getInstanceFollowRedirects() 返回此 HttpURLConnection 的 instanceFollowRedirects 字段的值。
Permission getPermission() 返回一個 SocketPermission 對象,表示連接到目標(biāo)主機(jī)和端口所需的權(quán)限。
String getRequestMethod() 獲取請求方法。
int getResponseCode() 從 HTTP 響應(yīng)消息中獲取狀態(tài)代碼。
String getResponseMessage() 獲取與響應(yīng)代碼一起從服務(wù)器返回的 HTTP 響應(yīng)消息(如果有)。
void setChunkedStreamingMode(int chunklen) 當(dāng)事先不知道內(nèi)容長度時,此方法用于啟用沒有內(nèi)部緩沖的 HTTP 請求正文的流式傳輸。
void setFixedLengthStreamingMode(int contentLength) 當(dāng)預(yù)先知道內(nèi)容長度時,此方法用于啟用沒有內(nèi)部緩沖的 HTTP 請求正文的流式傳輸。
void setFixedLengthStreamingMode(long contentLength) 當(dāng)預(yù)先知道內(nèi)容長度時,此方法用于啟用沒有內(nèi)部緩沖的 HTTP 請求正文的流式傳輸。
static void setFollowRedirects(boolean set) 設(shè)置該類是否應(yīng)自動跟隨 HTTP 重定向(響應(yīng)代碼為 3xx 的請求)。
void setInstanceFollowRedirects(boolean followRedirects) 設(shè)置此 HttpURLConnection 實例是否應(yīng)自動跟隨 HTTP 重定向(響應(yīng)代碼為 3xx 的請求)。
void setRequestMethod(String method) 設(shè)置 URL 請求的方法,其中之一: GET POST HEAD OPTIONS PUT DELETE TRACE 是合法的,受協(xié)議限制。
abstract boolean usingProxy() 指示連接是否通過代理。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
從類 java.net.URLConnection 繼承的方法
addRequestProperty, connect, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentLengthLong, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderFieldInt, getHeaderFieldLong, getHeaderFields, getIfModifiedSince, getInputStream, getLastModified, getOutputStream, getReadTimeout, getRequestProperties, getRequestProperty, getURL, getUseCaches, guessContentTypeFromName, guessContentTypeFromStream, setAllowUserInteraction, setConnectTimeout, setContentHandlerFactory, setDefaultAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDoInput, setDoOutput, setFileNameMap, setIfModifiedSince, setReadTimeout, setRequestProperty, setUseCaches, toString

字段詳細(xì)信息

HTTP_ACCEPTED

public static final int HTTP_ACCEPTED

HTTP 狀態(tài)碼 202:已接受。

HTTP_BAD_GATEWAY

public static final int HTTP_BAD_GATEWAY

HTTP 狀態(tài)碼 502:網(wǎng)關(guān)錯誤。

HTTP_BAD_METHOD

public static final int HTTP_BAD_METHOD

HTTP 狀態(tài)碼 405:不允許的方法。

HTTP_BAD_REQUEST

public static final int HTTP_BAD_REQUEST

HTTP 狀態(tài)碼 400:錯誤請求。

HTTP_CLIENT_TIMEOUT

public static final int HTTP_CLIENT_TIMEOUT

HTTP 狀態(tài)碼 408:請求超時。

HTTP_CONFLICT

public static final int HTTP_CONFLICT

HTTP 狀態(tài)碼 409:沖突。

HTTP_CREATED

public static final int HTTP_CREATED

HTTP 狀態(tài)碼 201:已創(chuàng)建。

HTTP_ENTITY_TOO_LARGE

public static final int HTTP_ENTITY_TOO_LARGE

HTTP 狀態(tài)碼 413:請求實體太大。

HTTP_FORBIDDEN

public static final int HTTP_FORBIDDEN

HTTP 狀態(tài)碼 403:禁止。

HTTP_GATEWAY_TIMEOUT

public static final int HTTP_GATEWAY_TIMEOUT

HTTP 狀態(tài)碼 504:網(wǎng)關(guān)超時。

HTTP_GONE

public static final int HTTP_GONE

HTTP 狀態(tài)碼 410:已消失。

HTTP_INTERNAL_ERROR

public static final int HTTP_INTERNAL_ERROR

HTTP 狀態(tài)碼 500:內(nèi)部服務(wù)器錯誤。

HTTP_LENGTH_REQUIRED

public static final int HTTP_LENGTH_REQUIRED

HTTP 狀態(tài)碼 411:長度要求。

HTTP_MOVED_PERM

public static final int HTTP_MOVED_PERM

HTTP 狀態(tài)碼 301:永久移動。

HTTP_MOVED_TEMP

public static final int HTTP_MOVED_TEMP

HTTP 狀態(tài)碼 302:臨時重定向。

HTTP_MULT_CHOICE

public static final int HTTP_MULT_CHOICE

HTTP 狀態(tài)碼 300:多項選擇。

HTTP_NOT_ACCEPTABLE

public static final int HTTP_NOT_ACCEPTABLE

HTTP 狀態(tài)碼 406:不可接受。

HTTP_NOT_AUTHORITATIVE

public static final int HTTP_NOT_AUTHORITATIVE

HTTP 狀態(tài)碼 203:非權(quán)威信息。

HTTP_NOT_FOUND

public static final int HTTP_NOT_FOUND

HTTP 狀態(tài)碼 404:未找到。

HTTP_NOT_IMPLEMENTED

public static final int HTTP_NOT_IMPLEMENTED

HTTP 狀態(tài)碼 501:未實現(xiàn)。

HTTP_NOT_MODIFIED

public static final int HTTP_NOT_MODIFIED

HTTP 狀態(tài)碼 304:未修改。

HTTP_NO_CONTENT

public static final int HTTP_NO_CONTENT

HTTP 狀態(tài)碼 204:無內(nèi)容。

HTTP_OK

public static final int HTTP_OK

HTTP 狀態(tài)碼 200:正常。

HTTP_PARTIAL

public static final int HTTP_PARTIAL

HTTP 狀態(tài)碼 206:部分內(nèi)容。

HTTP_PAYMENT_REQUIRED

public static final int HTTP_PAYMENT_REQUIRED

HTTP 狀態(tài)碼 402:需要付款。

HTTP_PRECON_FAILED

public static final int HTTP_PRECON_FAILED

HTTP 狀態(tài)碼 412:前提條件失敗。

HTTP_PROXY_AUTH

public static final int HTTP_PROXY_AUTH

HTTP 狀態(tài)碼 407:需要代理身份驗證。

HTTP_REQ_TOO_LONG

public static final int HTTP_REQ_TOO_LONG

HTTP 狀態(tài)碼 414:請求 URI 太大。

HTTP_RESET

public static final int HTTP_RESET

HTTP 狀態(tài)碼 205:重置內(nèi)容。

HTTP_SEE_OTHER

public static final int HTTP_SEE_OTHER

HTTP 狀態(tài)碼 303:請參閱其他。

HTTP_SERVER_ERROR

@Deprecated public static final int HTTP_SERVER_ERROR

已棄用。 它放錯了地方,不應(yīng)該存在。

HTTP 狀態(tài)碼 500:內(nèi)部服務(wù)器錯誤。

HTTP_UNAUTHORIZED

public static final int HTTP_UNAUTHORIZED

HTTP 狀態(tài)碼 401:未經(jīng)授權(quán)。

HTTP_UNAVAILABLE

public static final int HTTP_UNAVAILABLE

HTTP 狀態(tài)碼 503:服務(wù)不可用。

HTTP_UNSUPPORTED_TYPE

public static final int HTTP_UNSUPPORTED_TYPE

HTTP 狀態(tài)碼 415:不支持的媒體類型。

HTTP_USE_PROXY

public static final int HTTP_USE_PROXY

HTTP 狀態(tài)碼 305:使用代理。

HTTP_VERSION

public static final int HTTP_VERSION

HTTP 狀態(tài)碼 505:不支持 HTTP 版本。

chunkLength

protected int chunkLength

使用分塊編碼流模式進(jìn)行輸出時的塊長度。 值 -1 表示對輸出禁用分塊編碼。

fixedContentLength

protected int fixedContentLength

使用固定長度流模式時的固定內(nèi)容長度。 值 -1 表示對輸出禁用固定長度流模式。

注意:建議使用 fixedContentLengthLong 代替此字段,因為它允許設(shè)置更大的內(nèi)容長度。

fixedContentLengthLong

protected long fixedContentLengthLong

使用固定長度流模式時的固定內(nèi)容長度。 值 -1 表示對輸出禁用固定長度流模式。

instanceFollowRedirects

protected boolean instanceFollowRedirects

如果為true,協(xié)議將自動遵循重定向。 如果為 false,協(xié)議將不會自動遵循重定向。

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

其默認(rèn)值基于 HttpURLConnection 構(gòu)建時靜態(tài) followRedirects 的值。

method

protected String method

HTTP 方法(GET、POST、PUT 等)。

responseCode

protected int responseCode

一個表示三位 HTTP 狀態(tài)碼的 int。

  • 1xx:信息
  • 2xx:成功
  • 3xx:重定向
  • 4xx:客戶端錯誤
  • 5xx:服務(wù)器錯誤

responseMessage

protected String responseMessage

HTTP 響應(yīng)消息。

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

HttpURLConnection

protected HttpURLConnection(URL u)

HttpURLConnection 的構(gòu)造函數(shù)。

參數(shù):

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

方法詳情

getHeaderFieldKey

public String getHeaderFieldKey(int n)

返回第 n 個標(biāo)頭字段的鍵。 某些實現(xiàn)可能會將第 0 個標(biāo)頭字段視為特殊字段,即作為 HTTP 服務(wù)器返回的狀態(tài)行。 在這種情況下,getHeaderField(0) 返回狀態(tài)行,但 getHeaderFieldKey(0) 返回 null。

覆蓋:

類 URLConnection 中的 getHeaderFieldKey

參數(shù):

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

返回:

第 n 個標(biāo)頭字段的鍵,如果鍵不存在,則返回 null。

setFixedLengthStreamingMode

public void setFixedLengthStreamingMode(int contentLength)

當(dāng)預(yù)先知道內(nèi)容長度時,此方法用于啟用沒有內(nèi)部緩沖的 HTTP 請求正文的流式傳輸。

如果應(yīng)用程序嘗試寫入超過指定內(nèi)容長度的數(shù)據(jù),或者應(yīng)用程序在寫入指定數(shù)量之前關(guān)閉了 OutputStream,則會引發(fā)異常。

啟用輸出流時,無法自動處理身份驗證和重定向。 如果需要身份驗證或重定向,則在讀取響應(yīng)時將拋出 HttpRetryException。 可以查詢此異常以獲取錯誤的詳細(xì)信息。

此方法必須在 URLConnection 連接之前調(diào)用。

注意:建議使用 setFixedLengthStreamingMode(long) 代替此方法,因為它允許設(shè)置更大的內(nèi)容長度。

參數(shù):

參數(shù)名稱 參數(shù)描述
contentLength 將寫入 OutputStream 的字節(jié)數(shù)。

Throws:

Throw名稱 Throw描述
IllegalStateException 如果 URLConnection 已經(jīng)連接或者已經(jīng)啟用了不同的流模式。
IllegalArgumentException 如果指定的內(nèi)容長度小于零。

setFixedLengthStreamingMode

public void setFixedLengthStreamingMode(long contentLength)

當(dāng)預(yù)先知道內(nèi)容長度時,此方法用于啟用沒有內(nèi)部緩沖的 HTTP 請求正文的流式傳輸。

如果應(yīng)用程序嘗試寫入超過指定內(nèi)容長度的數(shù)據(jù),或者應(yīng)用程序在寫入指定數(shù)量之前關(guān)閉了 OutputStream,則會引發(fā)異常。

啟用輸出流時,無法自動處理身份驗證和重定向。 如果需要身份驗證或重定向,則在讀取響應(yīng)時將拋出 HttpRetryException。 可以查詢此異常以獲取錯誤的詳細(xì)信息。

此方法必須在 URLConnection 連接之前調(diào)用。

通過調(diào)用此方法設(shè)置的內(nèi)容長度優(yōu)先于由 setFixedLengthStreamingMode(int) 設(shè)置的任何值。

參數(shù):

參數(shù)名稱 參數(shù)描述
contentLength 將寫入 OutputStream 的字節(jié)數(shù)。

Throws:

Throw名稱 Throw描述
IllegalStateException 如果 URLConnection 已經(jīng)連接或者已經(jīng)啟用了不同的流模式。
IllegalArgumentException 如果指定的內(nèi)容長度小于零。

setChunkedStreamingMode

public void setChunkedStreamingMode(int chunklen)

當(dāng)事先不知道內(nèi)容長度時,此方法用于啟用沒有內(nèi)部緩沖的 HTTP 請求正文的流式傳輸。 在這種模式下,分塊傳輸編碼用于發(fā)送請求正文。 注意,并不是所有的 HTTP 服務(wù)器都支持這種模式。

啟用輸出流時,無法自動處理身份驗證和重定向。 如果需要身份驗證或重定向,則在讀取響應(yīng)時將拋出 HttpRetryException。 可以查詢此異常以獲取錯誤的詳細(xì)信息。

此方法必須在 URLConnection 連接之前調(diào)用。

參數(shù):

參數(shù)名稱 參數(shù)描述
chunklen 每個塊中要寫入的字節(jié)數(shù)。 如果 chunklen 小于或等于零,將使用默認(rèn)值。

Throws:

Throw名稱 Throw描述
IllegalStateException 如果 URLConnection 已經(jīng)連接或者已經(jīng)啟用了不同的流模式。

getHeaderField

public String getHeaderField(int n)

返回第 n 個標(biāo)頭字段的值。 某些實現(xiàn)可能會將第 0 個標(biāo)頭字段視為特殊字段,即作為 HTTP 服務(wù)器返回的狀態(tài)行。

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

覆蓋:

類 URLConnection 中的 getHeaderField

參數(shù):

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

返回:

第 n 個標(biāo)頭字段的值,如果該值不存在,則為 null。

setFollowRedirects

public static void setFollowRedirects(boolean set)

設(shè)置該類是否應(yīng)自動跟隨 HTTP 重定向(響應(yīng)代碼為 3xx 的請求)。 默認(rèn)為真。 小程序無法更改此變量。

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

參數(shù):

參數(shù)名稱 參數(shù)描述
set 一個布爾值,指示是否遵循 HTTP 重定向。

Throws:

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

getFollowRedirects

public static boolean getFollowRedirects()

返回一個布爾值,指示是否應(yīng)自動遵循 HTTP 重定向 (3xx)。

返回:

如果應(yīng)該自動遵循 HTTP 重定向,則為 true,否則為 false。

setInstanceFollowRedirects

public void setInstanceFollowRedirects(boolean followRedirects)

設(shè)置此 HttpURLConnection 實例是否應(yīng)自動跟隨 HTTP 重定向(響應(yīng)代碼為 3xx 的請求)。

默認(rèn)值來自followRedirects,默認(rèn)為true。

參數(shù):

參數(shù)名稱 參數(shù)描述
followRedirects 一個布爾值,指示是否遵循 HTTP 重定向。

getInstanceFollowRedirects

public boolean getInstanceFollowRedirects()

返回此 HttpURLConnection 的 instanceFollowRedirects 字段的值。

返回:

此 HttpURLConnection 的 instanceFollowRedirects 字段的值。

setRequestMethod

public void setRequestMethod(String method) throws ProtocolException

設(shè)置 URL 請求的方法,其中之一:

  • GET
  • POST
  • HEAD
  • OPTIONS
  • PUT
  • DELETE
  • TRACE

是合法的,受協(xié)議限制。 默認(rèn)方法是 GET。

參數(shù):

參數(shù)名稱 參數(shù)描述
method HTTP方法

Throws:

Throw名稱 Throw描述
ProtocolException 如果方法無法重置或者請求的方法對 HTTP 無效。
SecurityException 如果設(shè)置了安全管理器且方法為“TRACE”,但未授予“allowHttpTrace”NetPermission。

getRequestMethod

public String getRequestMethod()

獲取請求方法。

返回:

HTTP 請求方法

getResponseCode

public int getResponseCode() throws IOException

從 HTTP 響應(yīng)消息中獲取狀態(tài)代碼。 例如,在以下狀態(tài)行的情況下:

 HTTP/1.0 200 OK HTTP/1.0 401 Unauthorized 

它將分別返回 200 和 401。 如果無法從響應(yīng)中識別出任何代碼(即響應(yīng)不是有效的 HTTP),則返回 -1。

返回:

HTTP 狀態(tài)碼,或 -1

Throws:

Throw名稱 Throw描述
IOException 如果連接到服務(wù)器時發(fā)生錯誤。

getResponseMessage

public String getResponseMessage() throws IOException

獲取與響應(yīng)代碼一起從服務(wù)器返回的 HTTP 響應(yīng)消息(如果有)。 來自以下回復(fù):

 HTTP/1.0 200 OK HTTP/1.0 404 Not Found 

分別提取字符串“OK”和“Not Found”。 如果無法從響應(yīng)中辨別出任何內(nèi)容(結(jié)果不是有效的 HTTP),則返回 null。

返回:

HTTP 響應(yīng)消息,或 null

Throws:

Throw名稱 Throw描述
IOException 如果連接到服務(wù)器時發(fā)生錯誤。

getHeaderFieldDate

public long getHeaderFieldDate(String name, long Default)

從類中復(fù)制的描述:URLConnection

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

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

覆蓋:

類 URLConnection 中的 getHeaderFieldDate

參數(shù):

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

返回:

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

disconnect

public abstract void disconnect()

表示在不久的將來不太可能向服務(wù)器發(fā)出其他請求。 調(diào)用 disconnect() 不應(yīng)暗示此 HttpURLConnection 實例可用于其他請求。

usingProxy

public abstract boolean usingProxy()

指示連接是否通過代理。

返回:

一個布爾值,指示連接是否使用代理。

getPermission

public Permission getPermission() throws IOException

返回一個 SocketPermission 對象,表示連接到目標(biāo)主機(jī)和端口所需的權(quán)限。

覆蓋:

類 URLConnection 中的 getPermission

返回:

一個 SocketPermission 對象,表示連接到目標(biāo)主機(jī)和端口所需的權(quán)限。

Throws:

Throw名稱 Throw描述
IOException 如果在計算權(quán)限時發(fā)生錯誤。

getErrorStream

public InputStream getErrorStream()

如果連接失敗但服務(wù)器仍然發(fā)送了有用的數(shù)據(jù),則返回錯誤流。 典型的例子是當(dāng) HTTP 服務(wù)器響應(yīng) 404 時,這將導(dǎo)致在連接中拋出 FileNotFoundException,但服務(wù)器發(fā)送了一個 HTML 幫助頁面,其中包含有關(guān)如何操作的建議。

此方法不會導(dǎo)致啟動連接。 如果連接未連接,或者服務(wù)器在連接時沒有錯誤,或者服務(wù)器有錯誤但沒有發(fā)送錯誤數(shù)據(jù),則此方法將返回 null。 這是默認(rèn)設(shè)置。

返回:

如果有錯誤流,如果沒有錯誤,則返回 null,連接未連接或服務(wù)器未發(fā)送有用數(shù)據(jù)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號