添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
失眠的刺猬  ·  You have JVM property ...·  11 月前    · 
完美的鸡蛋面  ·  python表格处理_meza: ...·  1 年前    · 
腹黑的槟榔  ·  oracle update json ...·  1 年前    · 
慈祥的苹果  ·  CSS 多个 item hover ...·  1 年前    · 
魁梧的单车  ·  threejs 渐变材质-掘金·  1 年前    · 
支持 HTTP 特定功能的 URLConnection。 有关详细信息,请参阅规范。

每个 HttpURLConnection 实例用于发出单个请求,但到 HTTP 服务器的底层网络连接可能会被其他实例透明地共享。 在请求之后对 HttpURLConnection 的 InputStream 或 OutputStream 调用 close() 方法可能会释放与此实例关联的网络资源,但不会影响任何共享的持久连接。 如果持续连接当时处于空闲状态,则调用 disconnect() 方法可能会关闭底层套接字。

HTTP 协议处理程序有一些可以通过系统属性访问的设置。 这包括代理设置以及各种其他设置。

如果安装了安全管理器,并且调用了导致尝试打开连接的方法,则调用者必须拥有:-

  • 连接到目标 URL 的主机/端口组合的 SocketPermission 或
  • 允许此请求的 URLPermission。
  • 如果启用了自动重定向,并且此请求被重定向到另一个目的地,那么调用者还必须有权连接到重定向的主机/URL。

    setFixedLengthStreamingMode(int contentLength) 当预先知道内容长度时,此方法用于启用没有内部缓冲的 HTTP 请求正文的流式传输。 setFixedLengthStreamingMode(long contentLength) 当预先知道内容长度时,此方法用于启用没有内部缓冲的 HTTP 请求正文的流式传输。 static void setFollowRedirects(boolean set) 设置该类是否应自动跟随 HTTP 重定向(响应代码为 3xx 的请求)。 setInstanceFollowRedirects(boolean followRedirects) 设置此 HttpURLConnection 实例是否应自动跟随 HTTP 重定向(响应代码为 3xx 的请求)。 setRequestMethod(String method) 设置 URL 请求的方法,其中之一: GET POST HEAD OPTIONS PUT DELETE TRACE 是合法的,受协议限制。 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 如果为true,协议将自动遵循重定向。 如果为 false,协议将不会自动遵循重定向。

    该字段由 setInstanceFollowRedirects 方法设置。 它的值由 getInstanceFollowRedirects 方法返回。

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

    method

    protected String method

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

    responseCode

    protected int responseCode

    一个表示三位 HTTP 状态码的 int。

  • 1xx:信息
  • 2xx:成功
  • 3xx:重定向
  • 4xx:客户端错误
  • 5xx:服务器错误
  • responseMessage

    protected String responseMessage

    HTTP 响应消息。

    构造函数详细信息

    HttpURLConnection

    protected HttpURLConnection(URL u)

    HttpURLConnection 的构造函数。

    public String getHeaderFieldKey(int n)

    返回第 n 个标头字段的键。 某些实现可能会将第 0 个标头字段视为特殊字段,即作为 HTTP 服务器返回的状态行。 在这种情况下,getHeaderField(0) 返回状态行,但 getHeaderFieldKey(0) 返回 null。

    类 URLConnection 中的 getHeaderFieldKey

    public void setFixedLengthStreamingMode(int contentLength)

    当预先知道内容长度时,此方法用于启用没有内部缓冲的 HTTP 请求正文的流式传输。

    如果应用程序尝试写入超过指定内容长度的数据,或者应用程序在写入指定数量之前关闭了 OutputStream,则会引发异常。

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

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

    注意:建议使用 setFixedLengthStreamingMode(long) 代替此方法,因为它允许设置更大的内容长度。

    public void setFixedLengthStreamingMode(long contentLength)

    当预先知道内容长度时,此方法用于启用没有内部缓冲的 HTTP 请求正文的流式传输。

    如果应用程序尝试写入超过指定内容长度的数据,或者应用程序在写入指定数量之前关闭了 OutputStream,则会引发异常。

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

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

    通过调用此方法设置的内容长度优先于由 setFixedLengthStreamingMode(int) 设置的任何值。

    public void setChunkedStreamingMode(int chunklen)

    当事先不知道内容长度时,此方法用于启用没有内部缓冲的 HTTP 请求正文的流式传输。 在这种模式下,分块传输编码用于发送请求正文。 注意,并不是所有的 HTTP 服务器都支持这种模式。

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

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

    public String getHeaderField(int n)

    返回第 n 个标头字段的值。 某些实现可能会将第 0 个标头字段视为特殊字段,即作为 HTTP 服务器返回的状态行。

    此方法可以与 getHeaderFieldKey 方法结合使用,以遍历消息中的所有标头。

    类 URLConnection 中的 getHeaderField

    public static void setFollowRedirects(boolean set)

    设置该类是否应自动跟随 HTTP 重定向(响应代码为 3xx 的请求)。 默认为真。 小程序无法更改此变量。

    如果有安全管理器,该方法首先调用安全管理器的 checkSetFactory 方法,确保操作被允许。 这可能会导致 SecurityException。

    public void setInstanceFollowRedirects(boolean followRedirects)

    设置此 HttpURLConnection 实例是否应自动跟随 HTTP 重定向(响应代码为 3xx 的请求)。

    默认值来自followRedirects,默认为true。

    public boolean getInstanceFollowRedirects()

    返回此 HttpURLConnection 的 instanceFollowRedirects 字段的值。

    此 HttpURLConnection 的 instanceFollowRedirects 字段的值。

    setRequestMethod

    public void setRequestMethod(String method) throws ProtocolException

    设置 URL 请求的方法,其中之一:

  • OPTIONS
  • DELETE
  • TRACE
  • 是合法的,受协议限制。 默认方法是 GET。

     HTTP/1.0 200 OK HTTP/1.0 401 Unauthorized 
    它将分别返回 200 和 401。 如果无法从响应中识别出任何代码(即响应不是有效的 HTTP),则返回 -1。

    HTTP 状态码,或 -1

    Throws:

    Throw名称 Throw描述 public String getResponseMessage() throws IOException

    获取与响应代码一起从服务器返回的 HTTP 响应消息(如果有)。 来自以下回复:

     HTTP/1.0 200 OK HTTP/1.0 404 Not Found 
    分别提取字符串“OK”和“Not Found”。 如果无法从响应中辨别出任何内容(结果不是有效的 HTTP),则返回 null。

    HTTP 响应消息,或 null

    Throws:

    Throw名称 Throw描述 返回解析为日期的命名字段的值。 结果是命名字段表示的自 1970 年 1 月 1 日 GMT 以来的毫秒数。

    存在这种形式的 getHeaderField 是因为某些连接类型(例如 http-ng)具有预解析的标头。 该连接类型的类可以覆盖此方法并使解析短路。

    类 URLConnection 中的 getHeaderFieldDate

    public abstract void disconnect()

    表示在不久的将来不太可能向服务器发出其他请求。 调用 disconnect() 不应暗示此 HttpURLConnection 实例可用于其他请求。

    usingProxy

    public abstract boolean usingProxy()

    指示连接是否通过代理。

    一个布尔值,指示连接是否使用代理。

    getPermission

    public Permission getPermission() throws IOException

    返回一个 SocketPermission 对象,表示连接到目标主机和端口所需的权限。

    类 URLConnection 中的 getPermission

    一个 SocketPermission 对象,表示连接到目标主机和端口所需的权限。

    Throws:

    Throw名称 Throw描述 public InputStream getErrorStream()

    如果连接失败但服务器仍然发送了有用的数据,则返回错误流。 典型的例子是当 HTTP 服务器响应 404 时,这将导致在连接中抛出 FileNotFoundException,但服务器发送了一个 HTML 帮助页面,其中包含有关如何操作的建议。

    此方法不会导致启动连接。 如果连接未连接,或者服务器在连接时没有错误,或者服务器有错误但没有发送错误数据,则此方法将返回 null。 这是默认设置。

    如果有错误流,如果没有错误,则返回 null,连接未连接或服务器未发送有用数据。