Module  java.base
软件包  java.net

Class 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
    • 构造方法详细信息

      • ResponseCache

        public ResponseCache​()
    • 方法详细信息

      • setDefault

        public static void setDefault​(ResponseCache responseCache)
        设置(或取消)系统级缓存。 注意:非标准procotol处理程序可能会忽略此设置。
        参数
        responseCache - 响应缓存,或 null取消设置缓存。
        异常
        SecurityException - 如果安全管理器已安装,并且它已拒绝NetPermission ("setResponseCache")
        从以下版本开始:
        1.5
        另请参见:
        getDefault()
      • put

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