我正在使用Apache HttpClient 4.3.1而我正在尝试集成etag验证缓存。
我试图"放弃"使用instructions in here httpclient-cache CachingHttpClientBuilder而不是我常用的HttpClientBuilder,但这似乎没有任何好处。在追踪执行过程中,它似乎是一个响应,其中包括" etag"标题(弱标签)不被认为是可缓存的 - 因此不会保留用于下一个周期。
有没有人设法在Apache HttpClient中使用基于etag验证的缓存?我也开放替代实施。
注意:
答案 0 :(得分:1)
在
中决定是否将响应视为可缓存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'标题。
使用此设置apache http client
应该是这样的。 我们正在使用apache http客户端缓存的4.5.2版。