20230628 java.net.URLConnection
介绍
- java.net.URLConnection
- public abstract class URLConnection
- 如果想从某个 Web 资源获取更多信息,那么应该使用 URLConnection 类,通过它能够得到比基本的 URL 类更多的控制功能
API
static
- getDefaultUseCaches, setDefaultUseCaches
- getFileNameMap, setFileNameMap
- setDefaultAllowUserInteraction, getDefaultAllowUserInteraction
- setDefaultRequestProperty, getDefaultRequestProperty
- setContentHandlerFactory
- guessContentTypeFromName
- guessContentTypeFromStream
public
- connect
- 连接远程资源并获取响应头信息
- getInputStream, getOutputStream
- 返回从资源读取信息或向资源写入信息的流
- getContent
- 选择适当的内容处理器,以便读取资源数据并将它转换成对象
- getURL
- 获取
URL
- 获取
- getDefaultUseCaches, setDefaultUseCaches
- getPermission
- 返回一个权限对象,表示建立此对象所表示的连接所需的权限
请求属性
- setDoInput, getDoInput
- 如果 doInput 为 true ,那么用户可以接收来自该 URLConnection 的输入
- setDoOutput, getDoOutput
- 如果 doOutput 为 true ,那么用户可以将输出发送到该 URLConnection
- setIfModifiedSince, getIfModifiedSince
- 属性 ifModifiedSince 用于配置该 URLConnection 对象,使它只获取那些自从某个给定时间以来被修改过的数据。
- 调用方法时需要传人的 time 参数指的是从格林尼治时间 1970 年 1 月 1 日午夜开始计算的秒数
- setUseCaches, getUseCaches
- 如果 useCaches 为 true ,那么数据可以从本地缓存中得到。
- 请注意, URLConnection 本身并不维护这样一个缓存,缓存必须由浏览器之类的外部程序提供
- setAllowUserInteraction, getAllowUserInteraction
- 如果 allowUserInteraction 为 true ,那么可以查询用户的口令。
- 请注意, URLConnection 本身并不提供这种查询功能。查询必须由浏览器或浏览器插件之类的外部程序实现
- setConnectTimeout, getConnectTimeout
- 设置或得到连接超时时限(单位:毫秒) 。
- 如果在连接建立之前就已经达到了超时的时限,那么相关联的输入流的 connect 方法就会抛出一个 SocketTimeoutException 异常
- setReadTimeout, getReadTimeout
- 设置读取数据的超时时限(单位:毫秒) 。
- 如果在一个读操作成功之前就已经达到了超时的时限,那么 read 方法就会抛出一个 SocketTimeoutException 异常
设置 kv 对:
- setRequestProperty, getRequestProperty
- addRequestProperty
- getRequestProperties
响应消息头
- getHeaderFields
- getHeaderField, getHeaderFieldLong, getHeaderFieldInt, getHeaderFieldDate
- 返回消息头的 value
getHeaderField
返回String
,其他三个方法进行转换getHeaderFieldDate
通过Date.parse
转换- getHeaderField(0) 获取响应状态行,例如
HTTP/1.1 200 OK
- getHeaderFieldKey
String getHeaderFieldKey(int n)
- 返回消息头的 key
- n 从 1 开始
常用的消息头类型
- getContentLength, getContentLengthLong
content-length
- getLastModified
last-modified
- getDate
date
- getContentType
content-type
- getContentEncoding
content-encoding
- getExpiration
expires