新聞中心
HttpURLConnection

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),南京企業(yè)網(wǎng)站建設(shè),南京品牌網(wǎng)站建設(shè),網(wǎng)站定制,南京網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,南京網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
java.lang.Object
|---java.net.URLConnection
|---|---java.net.HttpURLConnection
public abstract class HttpURLConnection
extends URLConnection
支持 HTTP 特定功能的 URLConnection。 有關(guān)詳細(xì)信息,請(qǐng)參閱規(guī)范。
每個(gè) HttpURLConnection 實(shí)例用于發(fā)出單個(gè)請(qǐng)求,但到 HTTP 服務(wù)器的底層網(wǎng)絡(luò)連接可能會(huì)被其他實(shí)例透明地共享。 在請(qǐng)求之后對(duì) HttpURLConnection 的 InputStream 或 OutputStream 調(diào)用 close() 方法可能會(huì)釋放與此實(shí)例關(guān)聯(lián)的網(wǎng)絡(luò)資源,但不會(huì)影響任何共享的持久連接。 如果持續(xù)連接當(dāng)時(shí)處于空閑狀態(tài),則調(diào)用 disconnect() 方法可能會(huì)關(guān)閉底層套接字。
HTTP 協(xié)議處理程序有一些可以通過(guò)系統(tǒng)屬性訪問(wèn)的設(shè)置。 這包括代理設(shè)置以及各種其他設(shè)置。
安全權(quán)限
如果安裝了安全管理器,并且調(diào)用了導(dǎo)致嘗試打開(kāi)連接的方法,則調(diào)用者必須擁有:-
- 連接到目標(biāo) URL 的主機(jī)/端口組合的 SocketPermission 或
- 允許此請(qǐng)求的 URLPermission。
如果啟用了自動(dòng)重定向,并且此請(qǐng)求被重定向到另一個(gè)目的地,那么調(diào)用者還必須有權(quán)連接到重定向的主機(jī)/URL。
字段摘要
| 修飾符和類(lèi)型 | 字段 | 描述 |
|---|---|---|
| protected int | chunkLength | 使用分塊編碼流模式進(jìn)行輸出時(shí)的塊長(zhǎng)度。 |
| protected int | fixedContentLength | 使用固定長(zhǎng)度流模式時(shí)的固定內(nèi)容長(zhǎng)度。 |
| protected long | fixedContentLengthLong | 使用固定長(zhǎng)度流模式時(shí)的固定內(nèi)容長(zhǎng)度。 |
| static int | HTTP_ACCEPTED | HTTP 狀態(tài)碼 202:已接受。 |
| static int | HTTP_BAD_GATEWAY | HTTP 狀態(tài)碼 502:網(wǎng)關(guān)錯(cuò)誤。 |
| static int | HTTP_BAD_METHOD | HTTP 狀態(tài)碼 405:不允許的方法。 |
| static int | HTTP_BAD_REQUEST | HTTP 狀態(tài)碼 400:錯(cuò)誤請(qǐng)求。 |
| static int | HTTP_CLIENT_TIMEOUT | HTTP 狀態(tài)碼 408:請(qǐng)求超時(shí)。 |
| 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:請(qǐng)求實(shí)體太大。 |
| static int | HTTP_FORBIDDEN | HTTP 狀態(tài)碼 403:禁止。 |
| static int | HTTP_GATEWAY_TIMEOUT | HTTP 狀態(tài)碼 504:網(wǎng)關(guān)超時(shí)。 |
| static int | HTTP_GONE | HTTP 狀態(tài)碼 410:已消失。 |
| static int | HTTP_INTERNAL_ERROR | HTTP 狀態(tài)碼 500:內(nèi)部服務(wù)器錯(cuò)誤。 |
| static int | HTTP_LENGTH_REQUIRED | HTTP 狀態(tài)碼 411:長(zhǎng)度要求。 |
| static int | HTTP_MOVED_PERM | HTTP 狀態(tài)碼 301:永久移動(dòng)。 |
| static int | HTTP_MOVED_TEMP | HTTP 狀態(tài)碼 302:臨時(shí)重定向。 |
| static int | HTTP_MULT_CHOICE | HTTP 狀態(tài)碼 300:多項(xiàng)選擇。 |
| static int | HTTP_NO_CONTENT | HTTP 狀態(tài)碼 204:無(wú)內(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:未實(shí)現(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:需要代理身份驗(yàn)證。 |
| static int | HTTP_REQ_TOO_LONG | HTTP 狀態(tài)碼 414:請(qǐng)求 URI 太大。 |
| static int | HTTP_RESET | HTTP 狀態(tài)碼 205:重置內(nèi)容。 |
| static int | HTTP_SEE_OTHER | HTTP 狀態(tài)碼 303:請(qǐng)參閱其他。 |
| static int | HTTP_SERVER_ERROR | 已棄用。 它放錯(cuò)了地方,不應(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:不支持的媒體類(lèi)型。 |
| static int | HTTP_USE_PROXY | HTTP 狀態(tài)碼 305:使用代理。 |
| static int | HTTP_VERSION | HTTP 狀態(tài)碼 505:不支持 HTTP 版本。 |
| protected boolean | instanceFollowRedirects | 如果為真,協(xié)議將自動(dòng)遵循重定向。 |
| protected String | method | HTTP 方法(GET、POST、PUT 等)。 |
| protected int | responseCode | 一個(gè)表示三位 HTTP 狀態(tài)碼的 int。 |
| protected String | responseMessage | HTTP 響應(yīng)消息。 |
| 從類(lèi) 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é)
| 修飾符和類(lèi)型 | 方法 | 描述 |
|---|---|---|
| abstract void | disconnect() | 表示在不久的將來(lái)不太可能向服務(wù)器發(fā)出其他請(qǐng)求。 |
| InputStream | getErrorStream() | 如果連接失敗但服務(wù)器仍然發(fā)送了有用的數(shù)據(jù),則返回錯(cuò)誤流。 |
| static boolean | getFollowRedirects() | 返回一個(gè)布爾值,指示是否應(yīng)自動(dòng)遵循 HTTP 重定向 (3xx)。 |
| String | getHeaderField(int n) | 返回第 n 個(gè)標(biāo)頭字段的值。 |
| long | getHeaderFieldDate(String name, long Default) | 返回解析為日期的命名字段的值。 |
| String | getHeaderFieldKey(int n) | 返回第 n 個(gè)標(biāo)頭字段的鍵。 |
| boolean | getInstanceFollowRedirects() | 返回此 HttpURLConnection 的 instanceFollowRedirects 字段的值。 |
| Permission | getPermission() | 返回一個(gè) SocketPermission 對(duì)象,表示連接到目標(biāo)主機(jī)和端口所需的權(quán)限。 |
| String | getRequestMethod() | 獲取請(qǐng)求方法。 |
| int | getResponseCode() | 從 HTTP 響應(yīng)消息中獲取狀態(tài)代碼。 |
| String | getResponseMessage() | 獲取與響應(yīng)代碼一起從服務(wù)器返回的 HTTP 響應(yīng)消息(如果有)。 |
| void | setChunkedStreamingMode(int chunklen) | 當(dāng)事先不知道內(nèi)容長(zhǎng)度時(shí),此方法用于啟用沒(méi)有內(nèi)部緩沖的 HTTP 請(qǐng)求正文的流式傳輸。 |
| void | setFixedLengthStreamingMode(int contentLength) | 當(dāng)預(yù)先知道內(nèi)容長(zhǎng)度時(shí),此方法用于啟用沒(méi)有內(nèi)部緩沖的 HTTP 請(qǐng)求正文的流式傳輸。 |
| void | setFixedLengthStreamingMode(long contentLength) | 當(dāng)預(yù)先知道內(nèi)容長(zhǎng)度時(shí),此方法用于啟用沒(méi)有內(nèi)部緩沖的 HTTP 請(qǐng)求正文的流式傳輸。 |
| static void | setFollowRedirects(boolean set) | 設(shè)置該類(lèi)是否應(yīng)自動(dòng)跟隨 HTTP 重定向(響應(yīng)代碼為 3xx 的請(qǐng)求)。 |
| void | setInstanceFollowRedirects(boolean followRedirects) | 設(shè)置此 HttpURLConnection 實(shí)例是否應(yīng)自動(dòng)跟隨 HTTP 重定向(響應(yīng)代碼為 3xx 的請(qǐng)求)。 |
| void | setRequestMethod(String method) | 設(shè)置 URL 請(qǐng)求的方法,其中之一: GET POST HEAD OPTIONS PUT DELETE TRACE 是合法的,受協(xié)議限制。 |
| abstract boolean | usingProxy() | 指示連接是否通過(guò)代理。 |
| 從類(lèi) java.lang.Object 繼承的方法 |
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| 從類(lèi) 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)錯(cuò)誤。
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:錯(cuò)誤請(qǐng)求。
HTTP_CLIENT_TIMEOUT
public static final int HTTP_CLIENT_TIMEOUT
HTTP 狀態(tài)碼 408:請(qǐng)求超時(shí)。
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:請(qǐng)求實(shí)體太大。
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)超時(shí)。
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ù)器錯(cuò)誤。
HTTP_LENGTH_REQUIRED
public static final int HTTP_LENGTH_REQUIRED
HTTP 狀態(tài)碼 411:長(zhǎng)度要求。
HTTP_MOVED_PERM
public static final int HTTP_MOVED_PERM
HTTP 狀態(tài)碼 301:永久移動(dòng)。
HTTP_MOVED_TEMP
public static final int HTTP_MOVED_TEMP
HTTP 狀態(tài)碼 302:臨時(shí)重定向。
HTTP_MULT_CHOICE
public static final int HTTP_MULT_CHOICE
HTTP 狀態(tài)碼 300:多項(xiàng)選擇。
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:未實(shí)現(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:無(wú)內(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:需要代理身份驗(yàn)證。
HTTP_REQ_TOO_LONG
public static final int HTTP_REQ_TOO_LONG
HTTP 狀態(tài)碼 414:請(qǐng)求 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:請(qǐng)參閱其他。
HTTP_SERVER_ERROR
@Deprecated public static final int HTTP_SERVER_ERROR
已棄用。 它放錯(cuò)了地方,不應(yīng)該存在。
HTTP 狀態(tài)碼 500:內(nèi)部服務(wù)器錯(cuò)誤。
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:不支持的媒體類(lèi)型。
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)行輸出時(shí)的塊長(zhǎng)度。 值 -1 表示對(duì)輸出禁用分塊編碼。
fixedContentLength
protected int fixedContentLength
使用固定長(zhǎng)度流模式時(shí)的固定內(nèi)容長(zhǎng)度。 值 -1 表示對(duì)輸出禁用固定長(zhǎng)度流模式。
注意:建議使用 fixedContentLengthLong 代替此字段,因?yàn)樗试S設(shè)置更大的內(nèi)容長(zhǎng)度。
fixedContentLengthLong
protected long fixedContentLengthLong
使用固定長(zhǎng)度流模式時(shí)的固定內(nèi)容長(zhǎng)度。 值 -1 表示對(duì)輸出禁用固定長(zhǎng)度流模式。
instanceFollowRedirects
protected boolean instanceFollowRedirects
如果為true,協(xié)議將自動(dòng)遵循重定向。 如果為 false,協(xié)議將不會(huì)自動(dòng)遵循重定向。
該字段由 setInstanceFollowRedirects 方法設(shè)置。 它的值由 getInstanceFollowRedirects 方法返回。
其默認(rèn)值基于 HttpURLConnection 構(gòu)建時(shí)靜態(tài) followRedirects 的值。
method
protected String method
HTTP 方法(GET、POST、PUT 等)。
responseCode
protected int responseCode
一個(gè)表示三位 HTTP 狀態(tài)碼的 int。
- 1xx:信息
- 2xx:成功
- 3xx:重定向
- 4xx:客戶端錯(cuò)誤
- 5xx:服務(wù)器錯(cuò)誤
responseMessage
protected String responseMessage
HTTP 響應(yīng)消息。
構(gòu)造函數(shù)詳細(xì)信息
HttpURLConnection
protected HttpURLConnection(URL u)
HttpURLConnection 的構(gòu)造函數(shù)。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| u | 網(wǎng)址 |
方法詳情
getHeaderFieldKey
public String getHeaderFieldKey(int n)
返回第 n 個(gè)標(biāo)頭字段的鍵。 某些實(shí)現(xiàn)可能會(huì)將第 0 個(gè)標(biāo)頭字段視為特殊字段,即作為 HTTP 服務(wù)器返回的狀態(tài)行。 在這種情況下,getHeaderField(0) 返回狀態(tài)行,但 getHeaderFieldKey(0) 返回 null。
覆蓋:
類(lèi) URLConnection 中的 getHeaderFieldKey
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| n | 一個(gè)索引,其中 n >=0。 |
返回:
第 n 個(gè)標(biāo)頭字段的鍵,如果鍵不存在,則返回 null。
setFixedLengthStreamingMode
public void setFixedLengthStreamingMode(int contentLength)
當(dāng)預(yù)先知道內(nèi)容長(zhǎng)度時(shí),此方法用于啟用沒(méi)有內(nèi)部緩沖的 HTTP 請(qǐng)求正文的流式傳輸。
如果應(yīng)用程序嘗試寫(xiě)入超過(guò)指定內(nèi)容長(zhǎng)度的數(shù)據(jù),或者應(yīng)用程序在寫(xiě)入指定數(shù)量之前關(guān)閉了 OutputStream,則會(huì)引發(fā)異常。
啟用輸出流時(shí),無(wú)法自動(dòng)處理身份驗(yàn)證和重定向。 如果需要身份驗(yàn)證或重定向,則在讀取響應(yīng)時(shí)將拋出 HttpRetryException。 可以查詢此異常以獲取錯(cuò)誤的詳細(xì)信息。
此方法必須在 URLConnection 連接之前調(diào)用。
注意:建議使用 setFixedLengthStreamingMode(long) 代替此方法,因?yàn)樗试S設(shè)置更大的內(nèi)容長(zhǎng)度。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| contentLength | 將寫(xiě)入 OutputStream 的字節(jié)數(shù)。 |
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IllegalStateException | 如果 URLConnection 已經(jīng)連接或者已經(jīng)啟用了不同的流模式。 |
| IllegalArgumentException | 如果指定的內(nèi)容長(zhǎng)度小于零。 |
setFixedLengthStreamingMode
public void setFixedLengthStreamingMode(long contentLength)
當(dāng)預(yù)先知道內(nèi)容長(zhǎng)度時(shí),此方法用于啟用沒(méi)有內(nèi)部緩沖的 HTTP 請(qǐng)求正文的流式傳輸。
如果應(yīng)用程序嘗試寫(xiě)入超過(guò)指定內(nèi)容長(zhǎng)度的數(shù)據(jù),或者應(yīng)用程序在寫(xiě)入指定數(shù)量之前關(guān)閉了 OutputStream,則會(huì)引發(fā)異常。
啟用輸出流時(shí),無(wú)法自動(dòng)處理身份驗(yàn)證和重定向。 如果需要身份驗(yàn)證或重定向,則在讀取響應(yīng)時(shí)將拋出 HttpRetryException。 可以查詢此異常以獲取錯(cuò)誤的詳細(xì)信息。
此方法必須在 URLConnection 連接之前調(diào)用。
通過(guò)調(diào)用此方法設(shè)置的內(nèi)容長(zhǎng)度優(yōu)先于由 setFixedLengthStreamingMode(int) 設(shè)置的任何值。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| contentLength | 將寫(xiě)入 OutputStream 的字節(jié)數(shù)。 |
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IllegalStateException | 如果 URLConnection 已經(jīng)連接或者已經(jīng)啟用了不同的流模式。 |
| IllegalArgumentException | 如果指定的內(nèi)容長(zhǎng)度小于零。 |
setChunkedStreamingMode
public void setChunkedStreamingMode(int chunklen)
當(dāng)事先不知道內(nèi)容長(zhǎng)度時(shí),此方法用于啟用沒(méi)有內(nèi)部緩沖的 HTTP 請(qǐng)求正文的流式傳輸。 在這種模式下,分塊傳輸編碼用于發(fā)送請(qǐng)求正文。 注意,并不是所有的 HTTP 服務(wù)器都支持這種模式。
啟用輸出流時(shí),無(wú)法自動(dòng)處理身份驗(yàn)證和重定向。 如果需要身份驗(yàn)證或重定向,則在讀取響應(yīng)時(shí)將拋出 HttpRetryException。 可以查詢此異常以獲取錯(cuò)誤的詳細(xì)信息。
此方法必須在 URLConnection 連接之前調(diào)用。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| chunklen | 每個(gè)塊中要寫(xiě)入的字節(jié)數(shù)。 如果 chunklen 小于或等于零,將使用默認(rèn)值。 |
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IllegalStateException | 如果 URLConnection 已經(jīng)連接或者已經(jīng)啟用了不同的流模式。 |
getHeaderField
public String getHeaderField(int n)
返回第 n 個(gè)標(biāo)頭字段的值。 某些實(shí)現(xiàn)可能會(huì)將第 0 個(gè)標(biāo)頭字段視為特殊字段,即作為 HTTP 服務(wù)器返回的狀態(tài)行。
此方法可以與 getHeaderFieldKey 方法結(jié)合使用,以遍歷消息中的所有標(biāo)頭。
覆蓋:
類(lèi) URLConnection 中的 getHeaderField
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| n | 一個(gè)索引,其中 n>=0。 |
返回:
第 n 個(gè)標(biāo)頭字段的值,如果該值不存在,則為 null。
setFollowRedirects
public static void setFollowRedirects(boolean set)
設(shè)置該類(lèi)是否應(yīng)自動(dòng)跟隨 HTTP 重定向(響應(yīng)代碼為 3xx 的請(qǐng)求)。 默認(rèn)為真。 小程序無(wú)法更改此變量。
如果有安全管理器,該方法首先調(diào)用安全管理器的 checkSetFactory 方法,確保操作被允許。 這可能會(huì)導(dǎo)致 SecurityException。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| set | 一個(gè)布爾值,指示是否遵循 HTTP 重定向。 |
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| SecurityException | 如果存在安全管理器并且其 checkSetFactory 方法不允許該操作。 |
getFollowRedirects
public static boolean getFollowRedirects()
返回一個(gè)布爾值,指示是否應(yīng)自動(dòng)遵循 HTTP 重定向 (3xx)。
返回:
如果應(yīng)該自動(dòng)遵循 HTTP 重定向,則為 true,否則為 false。
setInstanceFollowRedirects
public void setInstanceFollowRedirects(boolean followRedirects)
設(shè)置此 HttpURLConnection 實(shí)例是否應(yīng)自動(dòng)跟隨 HTTP 重定向(響應(yīng)代碼為 3xx 的請(qǐng)求)。
默認(rèn)值來(lái)自followRedirects,默認(rèn)為true。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| followRedirects | 一個(gè)布爾值,指示是否遵循 HTTP 重定向。 |
getInstanceFollowRedirects
public boolean getInstanceFollowRedirects()
返回此 HttpURLConnection 的 instanceFollowRedirects 字段的值。
返回:
此 HttpURLConnection 的 instanceFollowRedirects 字段的值。
setRequestMethod
public void setRequestMethod(String method) throws ProtocolException
設(shè)置 URL 請(qǐng)求的方法,其中之一:
- GET
- POST
- HEAD
- OPTIONS
- PUT
- DELETE
- TRACE
是合法的,受協(xié)議限制。 默認(rèn)方法是 GET。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| method | HTTP方法 |
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| ProtocolException | 如果方法無(wú)法重置或者請(qǐng)求的方法對(duì) HTTP 無(wú)效。 |
| SecurityException | 如果設(shè)置了安全管理器且方法為“TRACE”,但未授予“allowHttpTrace”NetPermission。 |
getRequestMethod
public String getRequestMethod()
獲取請(qǐng)求方法。
返回:
HTTP 請(qǐng)求方法
getResponseCode
public int getResponseCode() throws IOException
從 HTTP 響應(yīng)消息中獲取狀態(tài)代碼。 例如,在以下?tīng)顟B(tài)行的情況下:
HTTP/1.0 200 OK HTTP/1.0 401 Unauthorized
它將分別返回 200 和 401。 如果無(wú)法從響應(yīng)中識(shí)別出任何代碼(即響應(yīng)不是有效的 HTTP),則返回 -1。
返回:
HTTP 狀態(tài)碼,或 -1
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果連接到服務(wù)器時(shí)發(fā)生錯(cuò)誤。 |
getResponseMessage
public String getResponseMessage() throws IOException
獲取與響應(yīng)代碼一起從服務(wù)器返回的 HTTP 響應(yīng)消息(如果有)。 來(lái)自以下回復(fù):
HTTP/1.0 200 OK HTTP/1.0 404 Not Found
分別提取字符串“OK”和“Not Found”。 如果無(wú)法從響應(yīng)中辨別出任何內(nèi)容(結(jié)果不是有效的 HTTP),則返回 null。
返回:
HTTP 響應(yīng)消息,或 null
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果連接到服務(wù)器時(shí)發(fā)生錯(cuò)誤。 |
getHeaderFieldDate
public long getHeaderFieldDate(String name, long Default)
從類(lèi)中復(fù)制的描述:URLConnection
返回解析為日期的命名字段的值。 結(jié)果是命名字段表示的自 1970 年 1 月 1 日 GMT 以來(lái)的毫秒數(shù)。
存在這種形式的 getHeaderField 是因?yàn)槟承┻B接類(lèi)型(例如 http-ng)具有預(yù)解析的標(biāo)頭。 該連接類(lèi)型的類(lèi)可以覆蓋此方法并使解析短路。
覆蓋:
類(lèi) URLConnection 中的 getHeaderFieldDate
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| name | 標(biāo)題字段的名稱(chēng)。 |
| Default | 默認(rèn)值。 |
返回:
字段的值,解析為日期。 如果字段丟失或格式錯(cuò)誤,則返回 Default 參數(shù)的值。
disconnect
public abstract void disconnect()
表示在不久的將來(lái)不太可能向服務(wù)器發(fā)出其他請(qǐng)求。 調(diào)用 disconnect() 不應(yīng)暗示此 HttpURLConnection 實(shí)例可用于其他請(qǐng)求。
usingProxy
public abstract boolean usingProxy()
指示連接是否通過(guò)代理。
返回:
一個(gè)布爾值,指示連接是否使用代理。
getPermission
public Permission getPermission() throws IOException
返回一個(gè) SocketPermission 對(duì)象,表示連接到目標(biāo)主機(jī)和端口所需的權(quán)限。
覆蓋:
類(lèi) URLConnection 中的 getPermission
返回:
一個(gè) SocketPermission 對(duì)象,表示連接到目標(biāo)主機(jī)和端口所需的權(quán)限。
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果在計(jì)算權(quán)限時(shí)發(fā)生錯(cuò)誤。 |
getErrorStream
public InputStream getErrorStream()
如果連接失敗但服務(wù)器仍然發(fā)送了有用的數(shù)據(jù),則返回錯(cuò)誤流。 典型的例子是當(dāng) HTTP 服務(wù)器響應(yīng) 404 時(shí),這將導(dǎo)致在連接中拋出 FileNotFoundException,但服務(wù)器發(fā)送了一個(gè) HTML 幫助頁(yè)面,其中包含有關(guān)如何操作的建議。
此方法不會(huì)導(dǎo)致啟動(dòng)連接。 如果連接未連接,或者服務(wù)器在連接時(shí)沒(méi)有錯(cuò)誤,或者服務(wù)器有錯(cuò)誤但沒(méi)有發(fā)送錯(cuò)誤數(shù)據(jù),則此方法將返回 null。 這是默認(rèn)設(shè)置。
返回:
如果有錯(cuò)誤流,如果沒(méi)有錯(cuò)誤,則返回 null,連接未連接或服務(wù)器未發(fā)送有用數(shù)據(jù)。
網(wǎng)站名稱(chēng):創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSHttpURLConnection
網(wǎng)站地址:http://www.5511xx.com/article/dpccccd.html


咨詢
建站咨詢
