是否有关于如何向Retrofit + OkHttp 添加缓存和ETAG
/ If-None-Match
支持的正确解释?我正在努力为Etag
2个项目添加支持,起初我怀疑HTTP标头可能存在问题,另一个项目已正确设置,缓存仍无法按预期工作.
以下是我试图让它发挥作用.结果显示缓存似乎在应用程序的同一个实例中工作,但是一旦我重新启动 - 所有内容都会再次加载.此外,在我的日志中,我没有看到If-None-Match
被添加到请求中,因此我假设服务器不知道ETag
并且仍然完全重新计算响应.
以下是一些代码示例:
public class RetrofitHttpClient extends UrlConnectionClient
{
private OkUrlFactory generateDefaultOkUrlFactory()
{
OkHttpClient client = new com.squareup.okhttp.OkHttpClient();
try
{
Cache responseCache = new Cache(baseContext.getCacheDir(), SIZE_OF_CACHE);
client.setCache(responseCache);
}
catch (Exception e)
{
Logger.log(this, e, "Unable to set http cache");
}
client.setConnectTimeout(READ_TIMEOUT, TimeUnit.MILLISECONDS);
client.setReadTimeout(CONNECT_TIMEOUT, TimeUnit.MILLISECONDS);
return new OkUrlFactory(client);
}
private final OkUrlFactory factory;
public RetrofitHttpClient()
{
factory = generateDefaultOkUrlFactory();
}
@Override
protected HttpURLConnection openConnection(retrofit.client.Request request) throws …
Run Code Online (Sandbox Code Playgroud) 我似乎无法在Retrofit文档中找到有关如何显示任何请求详细信息的任何内容.
具体来说,我想从POST Request Body中看到JSON.
问题是我对服务器的请求失败,没有任何详细信息,我怀疑我身边出了问题.
用gatsby和谷歌分析跟踪自定义事件有什么可能吗?