Picasso:收到0个内容长度标题FROM DISK的回复

时间:2014-08-23 18:14:42

标签: android picasso

这可能是毕加索的一个错误,但我想先发布到StackOverflow。

我收到错误"收到的响应为0内容长度"从磁盘缓存中读取响应时。我每次都可以通过

重现这个错误

1)在类路径中不使用OKHttp运行我的应用程序。让图片加载

2)将OkHttp添加到classpath中,我收到了该错误。

我将Picasso源添加到我的项目中以进一步调查。我发现了

1)关闭缓存connection.setUseCaches(false);将绕过错误(因为它忽略了缓存)

2)我在Picasso源中找到了切换,检查OkHttp是否可用

try { Class.forName("com.squareup.okhttp.OkHttpClient"); okHttpClient = true; } catch (ClassNotFoundException ignored) {}

并且能够通过硬编码真实再现错误,然后在运行之间重现错误。

我想解决这个问题,因此我可以使用OKHttp(并为我当前的用户提供可行的升级)以及随之而来的所有好处。我也看过这个"阅读响应没有来自缓存的内容长度"在我的实时环境中的其他情况下的问题。一旦我进入状态缓存中的错误响应,图片将永远不会出现。

1 个答案:

答案 0 :(得分:3)

OkHttpClient okHttpClient = new OkHttpClient();
RestAdapter restAdapter = new RestAdapter.Builder().setClient(new OkClient(okHttpClient)).build();
OkHttpDownloader downloader = new OkHttpDownloader(okHttpClient);
Picasso picasso = new Picasso.Builder(this).downloader(downloader).build();

来源:https://stackoverflow.com/a/23832172/2158970