【问题标题】:Unexpected response code 412 while requesting images with volley使用 volley 请求图像时出现意外的响应代码 412
【发布时间】:2013-09-17 12:24:39
【问题描述】:

我们目前正在尝试让 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

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

【问题讨论】:

    标签: android image networking android-volley


    【解决方案1】:

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

    【讨论】:

    • 我应该在AppController 的哪里添加这一行?用什么方法?
    【解决方案2】:
    imageLoader.get(image_url, ImageLoader.getImageListener(viewHolder.status_pic, R.drawable.icon_loading, R.drawable.icon_error));
    

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

    为什么会发生

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

    【讨论】:

    • 但是我们没有改变任何前提条件,所有的图片都是在同一台服务器上的 png 文件,那么为什么有些加载而有些没有呢?另外,为什么仅在某些设备上存在问题?凌空是否产生设备依赖请求标头?
    • 你们对我的问题有任何线索吗? :stackoverflow.com/questions/19009312/…
    猜你喜欢
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多