URLConnection支持HTTP-specific的特性。有关详细信息,请参阅
the spec
。
每个HttpURLConnection实例是用于制造单个请求但底层网络连接到HTTP服务器可以透明地共享的其他实例。调用close()方法的InputStream或OutputStream HttpURLConnection后一个请求可能免费网络资源与这个实例相关联,但不影响任何共享的持久连接。调用断开()方法可能关闭底层的套接字如果闲置的持久连接。
HTTP协议处理程序有一些设置,可以通过系统属性访问。这套
Proxy settings
various other settings
。
如果安全管理器安装,如果一个方法被调用的结果,试图打开一个连接,调用者必须具备:-
“连接”的主机/端口组合
SocketPermission
目的地URL或
URLPermission
允许这个请求。
如果启用了自动重定向,这请求重定向到另一个目的地,然后调用者还必须允许连接到主机/重定向URL。
从以下版本开始:
JDK1.1
另请参见:
disconnect()
Methods inherited from class 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
Methods inherited from class java.lang.
Object
clone
,
equals
,
finalize
,
getClass
,
hashCode
,
notify
,
notifyAll
,
wait
,
wait
,
wait
fixedContentLength
protected int fixedContentLength
内容长度固定时使用固定长度的流模式。值
-1
意味着固定长度的输出流模式是禁用的。
注意:
fixedContentLengthLong
建议而不是这个领域,因为它允许更大的内容长度被设置。
从以下版本开始:
fixedContentLengthLong
protected long fixedContentLengthLong
内容长度固定时使用固定长度的流模式。值
-1
意味着固定长度的输出流模式是禁用的。
从以下版本开始:
instanceFollowRedirects
protected boolean instanceFollowRedirects
如果
true
,协议将自动重定向。如果
false
,协议不会自动重定向。
这个领域是
setInstanceFollowRedirects
设定的方法。它的值是
getInstanceFollowRedirects
返回的方法。
其默认值是基于静态followRedirects HttpURLConnection建设时间的价值。
另请参见:
setInstanceFollowRedirects(boolean)
、
getInstanceFollowRedirects()
setFollowRedirects(boolean)
HTTP_UNSUPPORTED_TYPE
public static final int HTTP_UNSUPPORTED_TYPE
HTTP状态代码415:不支持的媒体类型。
另请参见:
Constant Field Values
getHeaderFieldKey
public String getHeaderFieldKey(int n)
返回的键
n
th
头字段。有些实现可能对
0
th
头字段作为特殊,即HTTP服务器返回的状态行。在这种情况下,
getHeaderField(0)
返回状态行,但
getHeaderFieldKey(0)
返回null。
在课堂上
getHeaderFieldKey
URLConnection
n >=0
n
——一个索引。
的键
n
th
头字段,或者
null
如果键不存在。
setFixedLengthStreamingMode
public void setFixedLengthStreamingMode(int contentLength)
该方法用于启用HTTP请求流的身体没有内部缓冲,当内容长度是提前知道。
会抛出一个异常,如果应用程序试图写更多的数据比指定的内容长度,或者应用程序关闭OutputStream写作之前指定的金额。
当启用输出流时,不能自动处理身份验证和重定向。将阅读时抛出HttpRetryException响应如果需要身份验证或重定向。这个异常可以查询的细节错误。
但URLConnection连接之前必须调用此方法。
注意:
setFixedLengthStreamingMode(long)
建议而不是这种方法,因为它允许更大的内容长度设置。
contentLength
——将写入的字节数OutputStream。
IllegalStateException
——如果URLConnection已经连接的或者不同的流模式已启用。
IllegalArgumentException
——如果一个内容指定长度小于零。
从以下版本开始:
另请参见:
setChunkedStreamingMode(int)
setFixedLengthStreamingMode
public void setFixedLengthStreamingMode(long contentLength)
该方法用于启用HTTP请求流的身体没有内部缓冲,当内容长度是提前知道。
会抛出一个异常,如果应用程序试图写更多的数据比指定的内容长度,或者应用程序关闭OutputStream写作之前指定的金额。
当启用输出流时,不能自动处理身份验证和重定向。将阅读时抛出
HttpRetryException
响应如果需要身份验证或重定向。这个异常可以查询的细节错误。
但URLConnection连接之前必须调用此方法。
调用该方法的内容长度由
setFixedLengthStreamingMode(int)
设置优先于任何值。
contentLength
——将写入的字节数OutputStream。
IllegalStateException
——如果URLConnection已经连接的或者不同的流模式已启用。
IllegalArgumentException
——如果一个内容指定长度小于零。
从以下版本开始:
setChunkedStreamingMode
public void setChunkedStreamingMode(int chunklen)
该方法用于启用HTTP请求流的身体没有内部缓冲,当内容长度是
不
提前知道。在这种模式下,分块传输编码用于发送请求的身体。注意,并不是所有的HTTP服务器都支持这种模式。
当启用输出流时,不能自动处理身份验证和重定向。将阅读时抛出HttpRetryException响应如果需要身份验证或重定向。这个异常可以查询的细节错误。
但URLConnection连接之前必须调用此方法。
chunklen
——写在每个块的字节数。如果chunklen小于或等于零,将使用默认值。
IllegalStateException
——如果URLConnection已经连接的或者不同的流模式已启用。
从以下版本开始:
另请参见:
setFixedLengthStreamingMode(int)
getHeaderField
public String getHeaderField(int n)
返回的值
n
th
头字段。有些实现可能对
0
th
头字段作为特殊,即HTTP服务器返回的状态行。
这种方法可用于结合
getHeaderFieldKey
方法遍历所有的标题信息。
在课堂上
getHeaderField
URLConnection
n>=0
n
——一个索引。
的价值
n
th
头字段,或者
null
如果值不存在。
另请参见:
getHeaderFieldKey(int)
setFollowRedirects
public static void setFollowRedirects(boolean set)
集是否HTTP重定向(请求与响应代码3 xx)应该自动该类紧随其后。真正的默认。applet无法改变这个变量。
如果存在安全管理器,该方法首先调用安全管理器的
checkSetFactory
方法确保操作是允许的。这可能会导致抛出SecurityException。
set
——
boolean
指示是否遵循HTTP重定向。
SecurityException
——如果存在安全管理器及其
checkSetFactory
方法不允许操作。
另请参见:
SecurityManager.checkSetFactory()
,
getFollowRedirects()
getFollowRedirects
public static boolean getFollowRedirects()
返回一个
boolean
指示是否HTTP重定向(3 xx)应该自动跟踪。
true
如果HTTP重定向应该自动跟随,
false
如果不是。
另请参见:
setFollowRedirects(boolean)
setInstanceFollowRedirects
public void setInstanceFollowRedirects(boolean followRedirects)
集是否HTTP重定向(请求与响应代码3 xx)应该自动跟着这个
HttpURLConnection
实例。
来自followRedirects默认值,默认值为true。
followRedirects
——
boolean
指示是否遵循HTTP重定向。
从以下版本开始:
另请参见:
instanceFollowRedirects
,
getInstanceFollowRedirects()
getInstanceFollowRedirects
public boolean getInstanceFollowRedirects()
返回这个
HttpURLConnection
instanceFollowRedirects
字段的值。
这个
HttpURLConnection
instanceFollowRedirects
字段的值。
从以下版本开始:
另请参见:
instanceFollowRedirects
,
setInstanceFollowRedirects(boolean)
ProtocolException
——如果不能复位方法或者请求的HTTP方法无效。
SecurityException
——如果一套安全管理器和方法是“跟踪”,但“allowHttpTrace”NetPermission不是理所当然。
另请参见:
getRequestMethod()
得到一个HTTP响应消息的状态代码。例如,在以下状态:
HTTP / 1.0 200 OK HTTP / 1.0 401未经授权
它将返回分别为200人和401人。返回1如果没有代码可以从响应(即。,响应HTTP)是无效的。
HTTP状态代码,或1
IOException
——如果一个错误发生连接到服务器。
得到了HTTP响应消息(如果有的话)从服务器返回的响应代码。从反应:
HTTP / 1.0 200 OK HTTP / 1.0 404 Not Found
提取字符串分别“OK”和“未找到”。返回null如果没有可以从响应(结果是无效的HTTP)。
HTTP响应消息,或者
null
IOException
——如果一个错误发生连接到服务器。
getHeaderFieldDate
public long getHeaderFieldDate(String name,
long Default)
描述复制从类:
URLConnection
返回指定字段的值解析日期。结果是1月1日以来的毫秒数,1970 GMT由指定的字段。
这种形式的
getHeaderField
存在因为一些连接类型(如。,
http-ng
)预编译头。类的连接类型可以覆盖这个方法和短路的解析。
在课堂上
getHeaderFieldDate
URLConnection
name
——头字段的名称。
Default
——一个默认值。
字段的值,解析日期。
Default
参数返回的值,如果字段丢失或畸形。
getErrorStream
public InputStream getErrorStream()
返回错误流如果连接失败但服务器发送有用的数据。典型的例子是当一个HTTP服务器响应404,这将导致FileNotFoundException被扔在连接,但是服务器发送HTML帮助页面,建议该怎么做。
这个方法不会导致发起连接。如果连接没有连接,或如果服务器没有错误连接或如果服务器有错误但没有发送错误数据,该方法将会返回null。这是默认的。
一个错误流,零如果没有错误,连接没有连接或服务器发送任何有用的数据。