Package java.net

Class ResponseCache

java.lang.Object
java.net.ResponseCache
Direct Known Subclasses:
HttpResponseCache

public abstract class ResponseCache
extends Object
Caches URLConnection responses.

The system's default cache can be set using setDefault(java.net.ResponseCache). If URLConnection.getUseCaches() returns true, URLConnection will use the default response cache, if one has been set.

Although URLConnection will always call put(java.net.URI, java.net.URLConnection), the specific ResponseCache implementation gets to decide what will actually be cached, and for how long.

  • Constructor Details

    • ResponseCache

      public ResponseCache()
  • Method Details

    • getDefault

      public static ResponseCache getDefault()
      Returns the system's default response cache, or null.
    • setDefault

      public static void setDefault​(ResponseCache responseCache)
      Sets the system's default response cache. Use null to remove the response cache.
    • get

      public abstract CacheResponse get​(URI uri, String requestMethod, Map<String,​List<String>> requestHeaders) throws IOException
      Returns the cached response corresponding to the given request.
      Parameters:
      uri - the request URI.
      requestMethod - the request method.
      requestHeaders - a map of request headers.
      Returns:
      the CacheResponse object if the request is available in the cache or null otherwise.
      Throws:
      IOException - if an I/O error occurs while getting the cached data.
      IllegalArgumentException - if any one of the parameters is set to null.
    • put

      public abstract CacheRequest put​(URI uri, URLConnection connection) throws IOException
      Allows the protocol handler to cache data after retrieving resources. The ResponseCache decides whether the resource data should be cached or not. If so, this method returns a CacheRequest to write the resource data to. Otherwise, this method returns null.
      Parameters:
      uri - the reference to the requested resource.
      connection - the connection to fetch the response.
      Returns:
      a CacheRequest object with a WriteableByteChannel if the resource has to be cached, null otherwise.
      Throws:
      IOException - if an I/O error occurs while adding the resource.
      IllegalArgumentException - if any one of the parameters is set to null.