小编AAv*_*rin的帖子

改进ETAG和缓存

是否有关于如何向Retrofit + OkHttp 添加缓存和ETAG/ If-None-Match支持的正确解释?我正在努力为Etag2个项目添加支持,起初我怀疑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)

etag android retrofit okhttp

14
推荐指数
1
解决办法
7947
查看次数

改造显示请求详细信息 - 正文,标题等

我似乎无法在Retrofit文档中找到有关如何显示任何请求详细信息的任何内容.

具体来说,我想从POST Request Body中看到JSON.

问题是我对服务器的请求失败,没有任何详细信息,我怀疑我身边出了问题.

android retrofit

4
推荐指数
1
解决办法
2778
查看次数

4
推荐指数
2
解决办法
1632
查看次数