Module java.base
Package java.net

Class ResponseCache

java.lang.Object
java.net.ResponseCache

public abstract class ResponseCache extends Object
代表URLConnection缓存的实现。这样的类的实例可以通过ResponseCache.setDefault(ResponseCache)注册到系统中,系统将调用此对象来:
  • 将从外部源检索到的资源数据存储到缓存中
  • 尝试从缓存中获取可能已存储在其中的请求资源
ResponseCache实现决定应该缓存哪些资源,以及它们应该被缓存多长时间。如果无法从缓存中检索请求的资源,那么协议处理程序将从其原始位置获取资源。URLConnection#useCaches的设置控制协议是否允许使用缓存响应。有关HTTP缓存的更多信息,请参见RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1
自:
1.5
外部规范
  • Constructor Details

    • ResponseCache

      public ResponseCache()
      子类调用的构造函数。
  • Method Details

    • getDefault

      public static ResponseCache getDefault()
      获取系统范围的响应缓存。
      返回:
      系统范围的ResponseCache
      抛出:
      SecurityException - 如果安装了安全管理器并且拒绝NetPermission("getResponseCache")
      自:
      1.5
      参见:
    • setDefault

      public static void setDefault(ResponseCache responseCache)
      设置(或取消设置)系统范围的缓存。注意:非标准协议处理程序可能会忽略此设置。
      参数:
      responseCache - 响应缓存,或null以取消缓存。
      抛出:
      SecurityException - 如果安装了安全管理器并且拒绝NetPermission("setResponseCache")
      自:
      1.5
      参见:
    • get

      public abstract CacheResponse get(URI uri, String rqstMethod, Map<String,List<String>> rqstHeaders) throws IOException
      根据请求的URI、请求方法和请求标头检索缓存的响应。通常,协议处理程序在发送请求以获取网络资源之前调用此方法。如果返回了缓存的响应,则使用该资源。
      参数:
      uri - 用于引用请求的网络资源的URI
      rqstMethod - 表示请求方法的String
      rqstHeaders - 从请求标头字段名称到当前请求标头值列表的映射
      返回:
      如果从缓存中可用,则返回CacheResponse实例,否则返回null
      抛出:
      IOException - 如果发生I/O错误
      IllegalArgumentException - 如果任何一个参数为null
      参见:
    • put

      public abstract CacheRequest put(URI uri, URLConnection conn) throws IOException
      协议处理程序在检索到资源后调用此方法,ResponseCache必须决定是否将资源存储在其缓存中。如果要缓存资源,则put()必须返回一个包含OutputStream的CacheRequest对象,协议处理程序将使用该OutputStream将资源写入缓存。如果不打算缓存资源,则put必须返回null。
      参数:
      uri - 用于引用请求的网络资源的URI
      conn - 用于获取要缓存的响应的URLConnection实例
      返回:
      用于记录要缓存的响应的CacheRequest。返回null表示调用方不打算缓存响应。
      抛出:
      IOException - 如果发生I/O错误
      IllegalArgumentException - 如果任何一个参数为null