Java cachingHttpclient不能忽略标题“;缓存控制:无缓存“;

Java cachingHttpclient不能忽略标题“;缓存控制:无缓存“;,java,caching,cache-control,apache-httpclient-4.x,Java,Caching,Cache Control,Apache Httpclient 4.x,我正在使用ApacheCachingttpClient从java代码中查询RESTAPI 我想缓存一些http响应,尽管接收到“cache Control:no cache”头导致cachingHttpClient不缓存文件 使用squid、mod_cache等独立http代理,我可以调整配置以忽略这些头并覆盖默认行为 我不想选择独立的http代理,而是选择100%的java代码 是否还有另一个http客户端可以提供更多的缓存控制 我可以实现一个重写头的中间层/代理吗 我可以通过继承来修补Cac

我正在使用ApacheCachingttpClient从java代码中查询RESTAPI

我想缓存一些http响应,尽管接收到“cache Control:no cache”头导致cachingHttpClient不缓存文件

使用squid、mod_cache等独立http代理,我可以调整配置以忽略这些头并覆盖默认行为

我不想选择独立的http代理,而是选择100%的java代码

  • 是否还有另一个http客户端可以提供更多的缓存控制
  • 我可以实现一个重写头的中间层/代理吗
  • 我可以通过继承来修补CachingttpClient吗

  • 请求正被
    canCachedResponseBeUsed
    方法中的
    CachedResponseSuitabilityChecker
    拒绝。如果您需要不同的行为,则该类将实现您自己的版本,然后使用
    cachingHttpClient

    CachingHttpClient(HttpClient backend, 
         CacheValidityPolicy validityPolicy,
         ResponseCachingPolicy responseCachingPolicy,
         HttpCache responseCache,
         CachedHttpResponseGenerator responseGenerator,
         CacheableRequestPolicy cacheableRequestPolicy,
         CachedResponseSuitabilityChecker suitabilityChecker, 
         ConditionalRequestBuilder conditionalRequestBuilder, 
         ResponseProtocolCompliance responseCompliance, 
         RequestProtocolCompliance requestCompliance) 
    

    拒绝点应来自CacheableRequestPolicy。子类无法继承长构造函数。因此,您必须将整个源代码复制到您的包中。这将使bug修复补丁变得困难。