java.net

接口
异常
java.lang.Object
  继承者 java.net.URLConnection
      继承者 java.net.HttpURLConnection
直接已知子类:
HttpsURLConnection

public abstract class HttpURLConnection
     
extends URLConnection

支持 HTTP 特定功能的 URLConnection。有关详细信息,请参阅 the spec

每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络。请求后在 HttpURLConnection 的 InputStream 或 OutputStream 上调用 close() 方法可以释放与此实例关联的网络资源,但对共享的持久连接没有任何影响。如果在调用 disconnect() 时持久连接空闲,则可能关闭基础套接字。

从以下版本开始:
JDK1.1
另请参见:
disconnect()

字段摘要
protected  int chunkLength
          使用存储块编码流模式进行输出时的存储块长度。
protected  int fixedContentLength
          使用固定长度流模式时的固定内容长度。
static int HTTP_ACCEPTED
          HTTP 状态码 202:Accepted。
static int HTTP_BAD_GATEWAY
          HTTP 状态码 502:Bad Gateway。
static int HTTP_BAD_METHOD
          HTTP 状态码 405:Method Not Allowed。
static int HTTP_BAD_REQUEST
          HTTP 状态码 400:Bad Request。
static int HTTP_CLIENT_TIMEOUT
          HTTP 状态码 408:Request Time-Out。
static int HTTP_CONFLICT
          HTTP 状态码 409:Conflict。
static int HTTP_CREATED
          HTTP 状态码 201:Created。
static int HTTP_ENTITY_TOO_LARGE
          HTTP 状态码 413:Request Entity Too Large。
static int HTTP_FORBIDDEN
          HTTP 状态码 403:Forbidden。
static int HTTP_GATEWAY_TIMEOUT
          HTTP 状态码 504:Gateway Timeout。
static int HTTP_GONE
          HTTP 状态码 410:Gone。
static int HTTP_INTERNAL_ERROR
          HTTP 状态码 500:Internal Server Error。
static int HTTP_LENGTH_REQUIRED
          HTTP 状态码 411:Length Required。
static int HTTP_MOVED_PERM
          HTTP 状态码 301:Moved Permanently。
static int HTTP_MOVED_TEMP
          HTTP 状态码 302:Temporary Redirect。
static int HTTP_MULT_CHOICE
          HTTP 状态码 300:Multiple Choices。
static int HTTP_NO_CONTENT
          HTTP 状态码 204:No Content。
static int HTTP_NOT_ACCEPTABLE
          HTTP 状态码 406:Not Acceptable。
static int HTTP_NOT_AUTHORITATIVE
          HTTP 状态码 203:Non-Authoritative Information。
static int HTTP_NOT_FOUND
          HTTP 状态码 404:Not Found。
static int HTTP_NOT_IMPLEMENTED
          HTTP 状态码 501:Not Implemented。
static int HTTP_NOT_MODIFIED
          HTTP 状态码 304:Not Modified。
static int HTTP_OK
          HTTP 状态码 200:OK。
static int HTTP_PARTIAL
          HTTP 状态码 206:Partial Content。
static int HTTP_PAYMENT_REQUIRED
          HTTP 状态码 402:Payment Required。
static int HTTP_PRECON_FAILED
          HTTP 状态码 412:Precondition Failed。
static int HTTP_PROXY_AUTH
          HTTP 状态码 407:Proxy Authentication Required。
static int HTTP_REQ_TOO_LONG
          HTTP 状态码 414:Request-URI Too Large。
static int HTTP_RESET
          HTTP 状态码 205:Reset Content。
static int HTTP_SEE_OTHER
          HTTP 状态码 303:See Other。
static int HTTP_SERVER_ERROR
          已过时。 放错了位置,它不应该存在。
static int HTTP_UNAUTHORIZED
          HTTP 状态码 401:Unauthorized。
static int HTTP_UNAVAILABLE
          HTTP 状态码 503:Service Unavailable。
static int HTTP_UNSUPPORTED_TYPE
          HTTP 状态码 415:Unsupported Media Type。
static int HTTP_USE_PROXY
          HTTP 状态码 305:Use Proxy。
static int HTTP_VERSION
          HTTP 状态码 505:HTTP Version Not Supported。
protected  boolean instanceFollowRedirects
          如果为 true,则协议自动执行重定向。
protected  String method
          HTTP 方法(GET、POST、PUT 等)。
protected  int responseCode
          表示三位字数的 HTTP 状态码 (Status-Code) 的 int
protected  String responseMessage
          HTTP 响应消息。
 
从类 java.net.URLConnection 继承的字段
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
 
构造方法摘要
protected HttpURLConnection(URL u)
          HttpURLConnection 的构造方法。
 
方法摘要
abstract  void disconnect()
          指示近期服务器不太可能有其他请求。
 InputStream getErrorStream()
          如果连接失败但服务器仍然发送了有用数据,则返回错误流。
static boolean getFollowRedirects()
          返回指示是否应该自动执行 HTTP 重定向 (3xx) 的 boolean 值。
 String getHeaderField(int n)
          返回 nth 头字段的值。
 long getHeaderFieldDate(String name, long Default)
          返回解析为日期的指定字段的值。
 String getHeaderFieldKey(int n)
          返回 nth 头字段的键。
 boolean getInstanceFollowRedirects()
          返回此 HttpURLConnectioninstanceFollowRedirects 字段的值。
 Permission getPermission()
          返回一个权限对象,其代表建立此对象表示的连接所需的权限。
 String getRequestMethod()
          获取请求方法。
 int getResponseCode()
          从 HTTP 响应消息获取状态码。
 String getResponseMessage()
          获取与来自服务器的响应代码一起返回的 HTTP 响应消息(如果有)。
 void setChunkedStreamingMode(int chunklen)
          此方法用于在预先知道内容长度时启用没有进行内部缓冲的 HTTP 请求正文的流。
 void setFixedLengthStreamingMode(int contentLength)
          此方法用于在预先已知内容长度时启用没有进行内部缓冲的 HTTP 请求正文的流。
static void setFollowRedirects(boolean set)
          设置此类是否应该自动执行 HTTP 重定向(响应代码为 3xx 的请求)。
 void setInstanceFollowRedirects(boolean followRedirects)
          设置此 HttpURLConnection 实例是否应该自动执行 HTTP 重定向(响应代码为 3xx 的请求)。
 void setRequestMethod(String method)
          设置 URL 请求的方法, GET POST HEAD OPTIONS PUT DELETE TRACE 以上方法之一是合法的,具体取决于协议的限制。
abstract  boolean usingProxy()
          指示连接是否通过代理。
 
从类 java.net.URLConnection 继承的方法
addRequestProperty, connect, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderFieldInt, 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
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

method

protected String method
HTTP 方法(GET、POST、PUT 等)。


chunkLength

protected int chunkLength
使用存储块编码流模式进行输出时的存储块长度。值 -1 表示对输出禁用存储块编码。

从以下版本开始:
1.5

fixedContentLength

protected int fixedContentLength
使用固定长度流模式时的固定内容长度。值 -1 表示对输出禁用固定长度流模式。

从以下版本开始:
1.5

responseCode

protected int responseCode
表示三位字数的 HTTP 状态码 (Status-Code) 的 int
  • 1xx:Informational
  • 2xx:Success
  • 3xx:Redirection
  • 4xx:Client Error
  • 5xx:Server Error


responseMessage

protected String responseMessage
HTTP 响应消息。


instanceFollowRedirects

protected boolean instanceFollowRedirects
如果为 true,则协议自动执行重定向。如果为 false,则协议不会自动执行重定向。

此字段由 setInstanceFollowRedirects 方法设置。其值由 getInstanceFollowRedirects 方法返回。

其默认值基于构造 HttpURLConnection 时静态 followRedirects 的值。

另请参见:
setInstanceFollowRedirects(boolean), getInstanceFollowRedirects(), setFollowRedirects(boolean)

HTTP_OK

public static final int HTTP_OK
HTTP 状态码 200:OK。

另请参见:
常量字段值

HTTP_CREATED

public static final int HTTP_CREATED
HTTP 状态码 201:Created。

另请参见:
常量字段值

HTTP_ACCEPTED

public static final int HTTP_ACCEPTED
HTTP 状态码 202:Accepted。

另请参见:
常量字段值

HTTP_NOT_AUTHORITATIVE

public static final int HTTP_NOT_AUTHORITATIVE
HTTP 状态码 203:Non-Authoritative Information。

另请参见:
常量字段值

HTTP_NO_CONTENT

public static final int HTTP_NO_CONTENT
HTTP 状态码 204:No Content。

另请参见:
常量字段值

HTTP_RESET

public static final int HTTP_RESET
HTTP 状态码 205:Reset Content。

另请参见:
常量字段值

HTTP_PARTIAL

public static final int HTTP_PARTIAL
HTTP 状态码 206:Partial Content。

另请参见:
常量字段值

HTTP_MULT_CHOICE

public static final int HTTP_MULT_CHOICE
HTTP 状态码 300:Multiple Choices。

另请参见:
常量字段值

HTTP_MOVED_PERM

public static final int HTTP_MOVED_PERM
HTTP 状态码 301:Moved Permanently。

另请参见:
常量字段值

HTTP_MOVED_TEMP

public static final int HTTP_MOVED_TEMP
HTTP 状态码 302:Temporary Redirect。

另请参见:
常量字段值

HTTP_SEE_OTHER

public static final int HTTP_SEE_OTHER
HTTP 状态码 303:See Other。

另请参见:
常量字段值

HTTP_NOT_MODIFIED

public static final int HTTP_NOT_MODIFIED
HTTP 状态码 304:Not Modified。

另请参见:
常量字段值

HTTP_USE_PROXY

public static final int HTTP_USE_PROXY
HTTP 状态码 305:Use Proxy。

另请参见:
常量字段值

HTTP_BAD_REQUEST

public static final int HTTP_BAD_REQUEST
HTTP 状态码 400:Bad Request。

另请参见:
常量字段值

HTTP_UNAUTHORIZED

public static final int HTTP_UNAUTHORIZED
HTTP 状态码 401:Unauthorized。

另请参见:
常量字段值

HTTP_PAYMENT_REQUIRED

public static final int HTTP_PAYMENT_REQUIRED
HTTP 状态码 402:Payment Required。

另请参见:
常量字段值

HTTP_FORBIDDEN

public static final int HTTP_FORBIDDEN
HTTP 状态码 403:Forbidden。

另请参见:
常量字段值

HTTP_NOT_FOUND

public static final int HTTP_NOT_FOUND
HTTP 状态码 404:Not Found。

另请参见:
常量字段值

HTTP_BAD_METHOD

public static final int HTTP_BAD_METHOD
HTTP 状态码 405:Method Not Allowed。

另请参见:
常量字段值

HTTP_NOT_ACCEPTABLE

public static final int HTTP_NOT_ACCEPTABLE
HTTP 状态码 406:Not Acceptable。

另请参见:
常量字段值

HTTP_PROXY_AUTH

public static final int HTTP_PROXY_AUTH
HTTP 状态码 407:Proxy Authentication Required。

另请参见:
常量字段值

HTTP_CLIENT_TIMEOUT

public static final int HTTP_CLIENT_TIMEOUT
HTTP 状态码 408:Request Time-Out。

另请参见:
常量字段值

HTTP_CONFLICT

public static final int HTTP_CONFLICT
HTTP 状态码 409:Conflict。

另请参见:
常量字段值

HTTP_GONE

public static final int HTTP_GONE
HTTP 状态码 410:Gone。

另请参见:
常量字段值

HTTP_LENGTH_REQUIRED

public static final int HTTP_LENGTH_REQUIRED
HTTP 状态码 411:Length Required。

另请参见:
常量字段值

HTTP_PRECON_FAILED

public static final int HTTP_PRECON_FAILED
HTTP 状态码 412:Precondition Failed。

另请参见:
常量字段值

HTTP_ENTITY_TOO_LARGE

public static final int HTTP_ENTITY_TOO_LARGE
HTTP 状态码 413:Request Entity Too Large。

另请参见:
常量字段值

HTTP_REQ_TOO_LONG

public static final int HTTP_REQ_TOO_LONG
HTTP 状态码 414:Request-URI Too Large。

另请参见:
常量字段值

HTTP_UNSUPPORTED_TYPE

public static final int HTTP_UNSUPPORTED_TYPE
HTTP 状态码 415:Unsupported Media Type。

另请参见:
常量字段值

HTTP_SERVER_ERROR

@Deprecated
public static final int HTTP_SERVER_ERROR
已过时。  放错了位置,它不应该存在。
HTTP 状态码 500:Internal Server Error。

另请参见:
常量字段值

HTTP_INTERNAL_ERROR

public static final int HTTP_INTERNAL_ERROR
HTTP 状态码 500:Internal Server Error。

另请参见:
常量字段值

HTTP_NOT_IMPLEMENTED

public static final int HTTP_NOT_IMPLEMENTED
HTTP 状态码 501:Not Implemented。

另请参见:
常量字段值

HTTP_BAD_GATEWAY

public static final int HTTP_BAD_GATEWAY
HTTP 状态码 502:Bad Gateway。

另请参见:
常量字段值

HTTP_UNAVAILABLE

public static final int HTTP_UNAVAILABLE
HTTP 状态码 503:Service Unavailable。

另请参见:
常量字段值

HTTP_GATEWAY_TIMEOUT

public static final int HTTP_GATEWAY_TIMEOUT
HTTP 状态码 504:Gateway Timeout。

另请参见:
常量字段值

HTTP_VERSION

public static final int HTTP_VERSION
HTTP 状态码 505:HTTP Version Not Supported。

另请参见:
常量字段值
构造方法详细信息

HttpURLConnection

protected HttpURLConnection(URL u)
HttpURLConnection 的构造方法。

参数:
u - URL
方法详细信息

getHeaderFieldKey

public String getHeaderFieldKey(int n)
返回 n th 头字段的键。有些实现可能将 0 th 头字段视为特殊状态行,即由 HTTP 服务器返回的状态行。在此情况下, getHeaderField(0) 返回状态行,而 getHeaderFieldKey(0) 返回 null。

覆盖:
URLConnection 中的 getHeaderFieldKey
参数:
n - 索引,其中 n >=0。
返回:
n th 头字段的键;如果键不存在,则返回 null

setFixedLengthStreamingMode

public void setFixedLengthStreamingMode(int contentLength)
此方法用于在预先已知内容长度时启用没有进行内部缓冲的 HTTP 请求正文的流。

如果应用程序尝试写入的数据多于指示的内容长度,或者应用程序在写入指示的内容长度前关闭了 OutputStream,将抛出异常。

启用输出流时,不能自动处理验证和重定向。如果需要验证和重定向,则在读取响应时将抛出 HttpRetryException。可以查询此异常以获取错误的详细信息。

该方法必须在连接 URLConnection 前调用。

参数:
contentLength - 将写入 OutputStream 的字节数。
抛出:
IllegalStateException - 如果已连接 URLConnection 或者已启用另外的流模式。
IllegalArgumentException - 如果指定的内容长度小于零。
从以下版本开始:
1.5
另请参见:
setChunkedStreamingMode(int)

setChunkedStreamingMode

public void setChunkedStreamingMode(int chunklen)
此方法用于在预先 知道内容长度时启用没有进行内部缓冲的 HTTP 请求正文的流。在此模式下,使用存储块传输编码发送请求正文。注意,并非所有 HTTP 服务器都支持此模式。

启用输出流时,不能自动处理验证和重定向。如果需要验证和重定向,则在读取响应时将抛出 HttpRetryException。可以查询此异常以获取错误的详细信息。

该方法必须在连接 URLConnection 前调用。

参数:
chunklen - 要写入每个存储块的字节数。如果 chunklen 小于或等于零,则使用默认值。
抛出:
IllegalStateException - 如果已连接 URLConnection 或者已启用其他流模式。
从以下版本开始:
1.5
另请参见:
setFixedLengthStreamingMode(int)

getHeaderField

public String getHeaderField(int n)
返回 n th 头字段的值。有些实现可能将 0 th 头字段视为特殊状态行,即由 HTTP 服务器返回的状态行。

此方法可以与 getHeaderFieldKey 方法一起使用来迭代消息中的所有头。

覆盖:
URLConnection 中的 getHeaderField
参数:
n - 索引,其中 n>=0。
返回:
n th 头字段的值;如果值不存在,则返回 null
另请参见:
getHeaderFieldKey(int)

setFollowRedirects

public static void setFollowRedirects(boolean set)
设置此类是否应该自动执行 HTTP 重定向(响应代码为 3xx 的请求)。默认情况下为 true。Applet 不能更改此变量。

如果存在安全管理器,则此方法首先调用安全管理器的 checkSetFactory 方法来确保允许操作。这可能会导致 SecurityException 异常。

参数:
set - 指示是否进行 HTTP 重定向的 boolean 值。
抛出:
SecurityException - 如果安全管理器存在并且其 checkSetFactory 方法不允许进行此操作。
另请参见:
SecurityManager.checkSetFactory(), getFollowRedirects()

getFollowRedirects

public static boolean getFollowRedirects()
返回指示是否应该自动执行 HTTP 重定向 (3xx) 的 boolean 值。

返回:
如果应该自动执行 HTTP 重定向,则返回 true;否则返回 false
另请参见:
setFollowRedirects(boolean)

setInstanceFollowRedirects

public void setInstanceFollowRedirects(boolean followRedirects)
设置此 HttpURLConnection 实例是否应该自动执行 HTTP 重定向(响应代码为 3xx 的请求)。

默认值来自 followRedirects,其默认情况下为 true。

参数:
followRedirects - 指示是否执行 HTTP 重定向的 boolean 值。
从以下版本开始:
1.3
另请参见:
instanceFollowRedirects, getInstanceFollowRedirects()

getInstanceFollowRedirects

public boolean getInstanceFollowRedirects()
返回此 HttpURLConnectioninstanceFollowRedirects 字段的值。

返回:
HttpURLConnectioninstanceFollowRedirects 字段的值。
<