我正在使用Apache 4.3.1,我正在尝试集成电子标记验证缓存。
我已经尝试使用这里的指令“加入”http client-cache cachingthpclientbuilder,而不是我通常使用的HttpClientBuilder,但这似乎没有任何好处。在跟踪执行时,带有“etag”头(弱etag)的响应似乎不被认为是可缓存的——因此不会保留到下一个周期。
有人设法在Apache HttpClient中使用基于etag验证的缓存吗?我也愿意接受其他的实现方式。
笔记:
一个响应是否被认为是可缓存的由
ResponseCachingPolicy#isResponseCacheable(org.apache.http.HttpRequest, org.apache.http.HttpResponse)
它使用
ResponseCachingPolicy#isExplicitlyCacheable
当标头'Expires'被设置或标头'Cache-Control:'具有值“max-age”“s-maxage”“must-revalidate”“proxy-revalidate”或“public”之一时,响应被视为可缓存。
对我们来说,它成功地将“Cache-Control:'must-revalidate'与'Etag'标头一起添加到服务器上的响应中。
使用此设置,阿帕奇 http 客户端
这是应该的。我们使用的是apache http客户端缓存的4.5.2版本。