public abstract class HttpURLConnection extends URLConnection
每个HttpURLConnection实例是用来做一个请求,但潜在的网络连接到HTTP服务器可以透明地共享其他实例。调用()方法对一个InputStream或OutputStream HttpURLConnection请求后可以免费网络资源与该实例相关但对任何共享的持久连接没有影响。调用disconnect()方法如果持久连接空闲时关闭底层的socket。
HTTP协议处理程序的一些设置,可以通过系统属性访问。这套Proxy settings以及 various other settings。
安全权限
如果安装了一个安全管理器,如果调用了一个方法,从而试图打开一个连接,则调用方必须具有:—
SocketPermission
目的地URL主机/端口组合或URLPermission
允许此请求。如果启用自动重定向,这个请求被重定向到另一个目的地,那么调用方也必须有连接到重定向的主机/网址的权限。
disconnect()
Modifier and Type | Field and Description |
---|---|
protected int |
chunkLength
使用Chunked编码流模式输出时的块长度。
|
protected int |
fixedContentLength
固定长度的固定长度时,使用固定长度的流模式。
|
protected long |
fixedContentLengthLong
固定长度的固定长度时,使用固定长度的流模式。
|
static int |
HTTP_ACCEPTED
HTTP状态代码202:接受。
|
static int |
HTTP_BAD_GATEWAY
HTTP状态代码502:错误的网关。
|
static int |
HTTP_BAD_METHOD
HTTP状态代码405:不允许的方法。
|
static int |
HTTP_BAD_REQUEST
HTTP状态代码400:错误的请求。
|
static int |
HTTP_CLIENT_TIMEOUT
HTTP状态代码408:请求超时。
|
static int |
HTTP_CONFLICT
HTTP状态代码409:冲突。
|
static int |
HTTP_CREATED
HTTP状态代码201:创建。
|
static int |
HTTP_ENTITY_TOO_LARGE
HTTP状态代码413:请求实体太大。
|
static int |
HTTP_FORBIDDEN
HTTP状态代码403:禁止。
|
static int |
HTTP_GATEWAY_TIMEOUT
HTTP状态代码504:网关超时。
|
static int |
HTTP_GONE
HTTP状态代码410:走了。
|
static int |
HTTP_INTERNAL_ERROR
HTTP状态代码500:内部服务器错误。
|
static int |
HTTP_LENGTH_REQUIRED
HTTP状态代码411:长度。
|
static int |
HTTP_MOVED_PERM
HTTP状态代码301:永久移动。
|
static int |
HTTP_MOVED_TEMP
HTTP状态代码302:临时重定向。
|
static int |
HTTP_MULT_CHOICE
HTTP状态代码300:多重选择。
|
static int |
HTTP_NO_CONTENT
HTTP状态代码204:无内容。
|
static int |
HTTP_NOT_ACCEPTABLE
HTTP状态代码406:不可接受。
|
static int |
HTTP_NOT_AUTHORITATIVE
HTTP状态代码203:非权威信息。
|
static int |
HTTP_NOT_FOUND
HTTP状态代码404:没有发现。
|
static int |
HTTP_NOT_IMPLEMENTED
HTTP状态代码501:未实现。
|
static int |
HTTP_NOT_MODIFIED
HTTP状态代码304:不修改。
|
static int |
HTTP_OK
HTTP状态代码200:好的。
|
static int |
HTTP_PARTIAL
HTTP状态代码206部分的内容。
|
static int |
HTTP_PAYMENT_REQUIRED
HTTP状态代码402:付款要求。
|
static int |
HTTP_PRECON_FAILED
HTTP状态代码412:前提条件失败。
|
static int |
HTTP_PROXY_AUTH
HTTP状态代码407:代理服务器要求身份验证。
|
static int |
HTTP_REQ_TOO_LONG
HTTP状态代码414:请求URI太大。
|
static int |
HTTP_RESET
HTTP状态代码205:重置内容。
|
static int |
HTTP_SEE_OTHER
HTTP状态代码303:看到其他。
|
static int |
HTTP_SERVER_ERROR
过时的。
它是错误的,不应该存在。
|
static int |
HTTP_UNAUTHORIZED
HTTP状态代码401:未经授权。
|
static int |
HTTP_UNAVAILABLE
HTTP状态代码503:服务不可用。
|
static int |
HTTP_UNSUPPORTED_TYPE
HTTP状态代码415:不支持的媒体类型。
|
static int |
HTTP_USE_PROXY
HTTP状态代码305:使用代理。
|
static int |
HTTP_VERSION
HTTP状态代码505:HTTP版本不支持。
|
protected boolean |
instanceFollowRedirects
如果
true ,协议将自动跟随重定向。
|
protected String |
method
HTTP方法(GET、后,放,等)。
|
protected int |
responseCode
代表三位数的HTTP状态代码的
int 。
|
protected String |
responseMessage
HTTP响应消息。
|
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
Modifier | Constructor and Description |
---|---|
protected |
HttpURLConnection(URL u)
为你的构造函数。
|
Modifier and Type | Method and Description |
---|---|
abstract void |
disconnect()
指示在不久的将来,对服务器的其他请求是不可能的。
|
InputStream |
getErrorStream()
如果连接失败,返回错误流,但服务器仍然发送有用的数据。
|
static boolean |
getFollowRedirects()
返回一个
boolean 指示是否HTTP重定向(3xx)应自动跟踪。
|
String |
getHeaderField(int n)
返回的
n
TH标头字段的值。
|
long |
getHeaderFieldDate(String name, long Default)
返回解析为日期的命名字段的值。
|
String |
getHeaderFieldKey(int n)
返回的
n
TH标头字段的关键。
|
boolean |
getInstanceFollowRedirects()
返回该
HttpURLConnection 的
instanceFollowRedirects 字段的值。
|
Permission |
getPermission()
返回表示需要连接到目的主机和端口的权限
SocketPermission 对象。
|
String |
getRequestMethod()
获取请求方法。
|
int |
getResponseCode()
从一个HTTP响应消息中的状态码。
|
String |
getResponseMessage()
获取HTTP响应消息,如果有的话,随着从服务器返回的响应代码。
|
void |
setChunkedStreamingMode(int chunklen)
此方法用于使流的HTTP请求的正文没有内部缓冲,当内容长度
不预先知道。
|
void |
setFixedLengthStreamingMode(int contentLength)
此方法用于使流的HTTP请求的正文没有内部缓冲,当内容的长度是已知的。
|
void |
setFixedLengthStreamingMode(long contentLength)
此方法用于使流的HTTP请求的正文没有内部缓冲,当内容的长度是已知的。
|
static void |
setFollowRedirects(boolean set)
设置HTTP重定向(响应代码3xx要求)应自动跟着这类。
|
void |
setInstanceFollowRedirects(boolean followRedirects)
设置HTTP重定向(响应代码3xx要求)应自动跟着这
HttpURLConnection 实例。
|
void |
setRequestMethod(String method)
设置的方法为的网址请求,其中一个:获得后头选项删除跟踪是合法的,受协议限制。
|
abstract boolean |
usingProxy()
指示如果连接正在通过代理。
|
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
protected String method
protected int chunkLength
-1
手段Chunked编码是禁用输出。
protected int fixedContentLength
-1
固定长度的流模式禁用输出。
注: fixedContentLengthLong
是不是建议这个领域,因为它允许更大的内容的长度被设置。
protected long fixedContentLengthLong
-1
固定长度的流模式禁用输出。
protected int responseCode
int
。
protected String responseMessage
protected boolean instanceFollowRedirects
true
,协议将自动跟随重定向。如果
false
,协议不会自动跟随重定向。
这场由setInstanceFollowRedirects
方法。它的价值是由getInstanceFollowRedirects
方法返回。
其默认值是根据你施工时间的静态followredirects价值。
public static final int HTTP_OK
public static final int HTTP_CREATED
public static final int HTTP_ACCEPTED
public static final int HTTP_NOT_AUTHORITATIVE
public static final int HTTP_NO_CONTENT
public static final int HTTP_RESET
public static final int HTTP_PARTIAL
public static final int HTTP_MULT_CHOICE
public static final int HTTP_MOVED_PERM
public static final int HTTP_MOVED_TEMP
public static final int HTTP_SEE_OTHER
public static final int HTTP_NOT_MODIFIED
public static final int HTTP_USE_PROXY
public static final int HTTP_BAD_REQUEST
public static final int HTTP_UNAUTHORIZED
public static final int HTTP_PAYMENT_REQUIRED
public static final int HTTP_FORBIDDEN
public static final int HTTP_NOT_FOUND
public static final int HTTP_BAD_METHOD
public static final int HTTP_NOT_ACCEPTABLE
public static final int HTTP_PROXY_AUTH
public static final int HTTP_CLIENT_TIMEOUT
public static final int HTTP_CONFLICT
public static final int HTTP_GONE
public static final int HTTP_LENGTH_REQUIRED
public static final int HTTP_PRECON_FAILED
public static final int HTTP_ENTITY_TOO_LARGE
public static final int HTTP_REQ_TOO_LONG
public static final int HTTP_UNSUPPORTED_TYPE
@Deprecated public static final int HTTP_SERVER_ERROR
public static final int HTTP_INTERNAL_ERROR
public static final int HTTP_NOT_IMPLEMENTED
public static final int HTTP_BAD_GATEWAY
public static final int HTTP_UNAVAILABLE
public static final int HTTP_GATEWAY_TIMEOUT
public static final int HTTP_VERSION
protected HttpURLConnection(URL u)
u
的URL
public String getHeaderFieldKey(int n)
n
TH标头字段的关键。一些实现可能治疗
0
TH标头字段为特殊,即通过HTTP服务器返回的状态行。在这种情况下,
getHeaderField(0)
退货的情况,但
getHeaderFieldKey(0)
返回null。
getHeaderFieldKey
方法重写,继承类
URLConnection
n
-一个索引,在
n >=0
。
n
TH标头字段的关键,或
null
如果密钥不存在。
public void setFixedLengthStreamingMode(int contentLength)
一个例外是如果应用程序试图写比表示的内容长度的数据丢了,或者如果应用程序关闭输出流之前写的指示量。
当启用输出流时,身份验证和重定向不能自动处理。一个httpretryexception会被阅读时的反应如果认证或重定向是必需的。此异常可以查询错误的详细信息。
这种方法必须在URLConnection连接称为。
注: setFixedLengthStreamingMode(long)
是不是建议这个方法,它允许更大的内容的长度被设置。
contentLength
-字节将被写入到输出流的数量。
IllegalStateException
如果URLConnection已经连接或者不同的流模式已启用。
IllegalArgumentException
如果内容长度小于零的指定。
setChunkedStreamingMode(int)
public void setFixedLengthStreamingMode(long contentLength)
一个例外是如果应用程序试图写比表示的内容长度的数据丢了,或者如果应用程序关闭输出流之前写的指示量。
当启用输出流时,身份验证和重定向不能自动处理。一个HttpRetryException会被阅读时的反应如果认证或重定向是必需的。此异常可以查询错误的详细信息。
这种方法必须在URLConnection连接称为。
通过调用此方法优先于设定的setFixedLengthStreamingMode(int)
任何价值的内容长度。
contentLength
-字节将被写入到输出流的数量。
IllegalStateException
如果URLConnection已经连接或者不同的流模式已启用。
IllegalArgumentException
如果内容长度小于零的指定。
public void setChunkedStreamingMode(int chunklen)
当启用输出流时,身份验证和重定向不能自动处理。一个httpretryexception会被阅读时的反应如果认证或重定向是必需的。此异常可以查询错误的详细信息。
这种方法必须在URLConnection连接称为。
chunklen
-字节数写在每一块。如果chunklen小于或等于零,将使用默认值。
IllegalStateException
如果URLConnection已经连接或者不同的流模式已启用。
setFixedLengthStreamingMode(int)
public String getHeaderField(int n)
getHeaderField
方法重写,继承类
URLConnection
n
-一个索引,在
n>=0
。
n
TH标头字段的值,或
null
如果没有存在的价值。
getHeaderFieldKey(int)
public static void setFollowRedirects(boolean set)
如果存在安全管理器,该方法首先调用安全管理器的checkSetFactory
方法确保操作是允许的。这可能导致SecurityException。
set
-
boolean
指示是否遵循HTTP重定向。
SecurityException
-如果存在一个安全管理及其
checkSetFactory
方法不允许操作。
SecurityManager.checkSetFactory()
,
getFollowRedirects()
public static boolean getFollowRedirects()
boolean
指示是否HTTP重定向(3xx)应自动跟踪。
true
如果HTTP重定向应该自动跟随,如果不
false
。
setFollowRedirects(boolean)
public void setInstanceFollowRedirects(boolean followRedirects)
HttpURLConnection
实例。
默认值是从followredirects,真正违约。
followRedirects
-
boolean
指示是否遵循HTTP重定向。
instanceFollowRedirects
,
getInstanceFollowRedirects()
public boolean getInstanceFollowRedirects()
HttpURLConnection
的
instanceFollowRedirects
字段的值。
HttpURLConnection
的
instanceFollowRedirects
字段的值。
instanceFollowRedirects
,
setInstanceFollowRedirects(boolean)
public void setRequestMethod(String method) throws ProtocolException
method
- HTTP方法
ProtocolException
如果方法不能复位或如果不是有效的HTTP请求的方法。
SecurityException
-如果一个安全管理设置,方法是“痕迹”,但“allowhttptrace”netpermission不批。
getRequestMethod()
public String getRequestMethod()
setRequestMethod(java.lang.String)
public int getResponseCode() throws IOException
HTTP / 1 200 OK401未经授权的HTTP / 1将回报分别为200和401。返回1如果没有代码可以从响应识别(即,响应是不是有效的HTTP)。
IOException
如果发生错误连接到服务器。
public String getResponseMessage() throws IOException
HTTP / 1 200 OKHTTP / 1 404未找到提取字符串“OK”和“未找到”的分别。如果没有可以从响应识别返回null(结果是不是有效的HTTP)。
null
IOException
如果发生错误连接到服务器。
public long getHeaderFieldDate(String name, long Default)
URLConnection
这种形式的getHeaderField
存在一些连接类型(例如,http-ng
)有预解析头文件。该连接类型的类可以重写此方法,并使解析的短路。
getHeaderFieldDate
方法重写,继承类
URLConnection
name
-头字段的名称。
Default
-默认值。
Default
参数的值是如果字段丢失或畸形的恢复。
public abstract void disconnect()
public abstract boolean usingProxy()
public Permission getPermission() throws IOException
SocketPermission
对象。
getPermission
方法重写,继承类
URLConnection
SocketPermission
表示需要连接到目的主机和端口的权限。
IOException
-如果在计算允许出现错误。
public InputStream getErrorStream()
此方法将不会导致连接被启动。如果连接没有连接,或者服务器在连接时没有错误,或者服务器是否有错误,但没有发送错误数据,此方法将返回空值。这是默认值。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.