ResponseCache
java.lang.Object
|—java.net.ResponseCache
public abstract class ResponseCache
extends Object
表示 URLConnection 缓存的实现。 可以通过执行 ResponseCache.setDefault(ResponseCache) 向系统注册此类的实例,系统将调用此对象以:
- 将已从外部源检索到的资源数据存储到缓存中
- 尝试获取可能已存储在缓存中的请求资源
ResponseCache 实现决定哪些资源应该被缓存,以及它们应该被缓存多长时间。 如果无法从缓存中检索请求资源,则协议处理程序将从其原始位置获取资源。 URLConnection#useCaches 的设置控制是否允许协议使用缓存的响应。
构造函数摘要
构造函数 | 描述 |
---|---|
ResponseCache() |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
abstract CacheResponse | get(URI uri, String rqstMethod, Map<String,List<String>> rqstHeaders) | 根据请求 uri、请求方法和请求标头检索缓存的响应。 |
static ResponseCache | getDefault() | 获取系统范围的响应缓存。 |
abstract CacheRequest | put(URI uri, URLConnection conn) | 协议处理程序在获取资源后调用此方法,并且 ResponseCache 必须决定是否将资源存储在其缓存中。 |
static void | setDefault(ResponseCache responseCache) | 设置(或取消设置)系统范围的缓存。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造函数详细信息
ResponseCache
public ResponseCache()
方法详情
getDefault
public static ResponseCache getDefault()
获取系统范围的响应缓存。
返回:
系统范围的 ResponseCache
Throws:
Throw名称 | Throw描述 |
---|---|
SecurityException | 如果已安装安全管理器并且它拒绝 NetPermission(“getResponseCache”) |
setDefault
public static void setDefault(ResponseCache responseCache)
设置(或取消设置)系统范围的缓存。 注意:非标准协议处理程序可能会忽略此设置。
参数:
参数名称 | 参数描述 |
---|---|
responseCache | 响应缓存,或 null 取消设置缓存。 |
Throws:
Throw名称 | Throw描述 |
---|---|
SecurityException | 如果已安装安全管理器并且它拒绝 NetPermission(“setResponseCache”) |
get
public abstract CacheResponse get(URI uri, String rqstMethod, Map<String,List<String>> rqstHeaders) throws IOException
根据请求 uri、请求方法和请求标头检索缓存的响应。 通常,此方法由协议处理程序在发出请求以获取网络资源之前调用。 如果返回缓存的响应,则使用该资源。
参数:
参数名称 | 参数描述 |
---|---|
uri | 用于引用请求的网络资源的 URI |
rqstMethod | 表示请求方法的字符串 |
rqstHeaders | – 从请求标头字段名称到表示当前请求标头的字段值列表的映射 |
返回:
如果缓存中可用,则为 CacheResponse 实例,否则为 null
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误 |
IllegalArgumentException | 如果任何一个参数为空 |
put
public abstract CacheRequest put(URI uri, URLConnection conn) throws IOException
协议处理程序在获取资源后调用此方法,并且 ResponseCache 必须决定是否将资源存储在其缓存中。 如果要缓存资源,则 put() 必须返回一个 CacheRequest 对象,该对象包含协议处理程序将用于将资源写入缓存的 OutputStream。 如果不缓存资源,则 put 必须返回 null。
参数:
参数名称 | 参数描述 |
---|---|
uri | 用于引用请求的网络资源的 URI |
conn | – 用于获取要缓存的响应的 URLConnection 实例 |
返回:
用于记录要缓存的响应的 CacheRequest。 空返回表示调用者不打算缓存响应。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误 |
IllegalArgumentException | 如果任何一个参数为空 |