0

我们目前正在尝试让 volley 运行以将图像加载到 NetworkViews 中。

图像由 volley 在此行中请求和加载:

holder.image.setImageUrl(image.getUrl(), imageManager.getImageLoader());

在我同事的设备上,它运行流畅,但在我和第三台测试设备上,我们遇到了一堆截击错误,并且一些图像保持空白(两种设备上的图像不同)。

这些图像都在同一个服务器上,我们完全看不出为什么有些图像加载而有些不加载,或者为什么加载哪些图像应该取决于设备。

09-17 14:15:51.660: E/Volley(19440): [1087] BasicNetwork.performRequest: Unexpected response code 412 for xxxx

那么我们如何解决这个问题以及这种行为的原因是什么?

4

2 回答 2

1

请求清除缓存之前rQueue.getCache().clear(); 我查看了Volley下提交的数据抓取是否缓存,然后添加了两个Http头信息If-None-Match & If-Modified-Since,这两个参数用来更新信息,用于判断是否缓存,如果webserver不支持,则返回一个错误代码 412

于 2014-01-03T06:46:20.770 回答
0
imageLoader.get(image_url, ImageLoader.getImageListener(viewHolder.status_pic, R.drawable.icon_loading, R.drawable.icon_error));

使用 volley 获取图像时最好使用侦听器,但错误 412 - Precondition Failed

为什么会发生

服务器不满足请求者对请求提出的先决条件之一。即,请求的头部指定了不适用于请求文件的可接受文件的信息。

于 2013-09-17T12:43:21.797 回答