排球图像请求的意外响应代码302

时间:2013-11-05 11:32:07

标签: android image http-status-code-302 android-volley

我的应用程序需要从网上下载一些图片,而且我已经使用Volley进行了几个月的其他基本请求。但是,当我尝试在 Android 2.2 上从网络上获取图片时,会出现此错误。我只测试了Android 4.3和Android 2.2,它在4.3上完美运行。

E/Volley(2603): [65] BasicNetwork.performRequest: Unexpected response code 302 for <request URL>

这是我的代码:

imageContainer = imageLoader.get(imageUrl, new ImageListener() {

    public void onErrorResponse(VolleyError error) {
        iv.setImageResource(0); 
    }

    public void onResponse(ImageContainer response, boolean arg1){
        bitmap = response.getBitmap();
        if (bitmap != null) {
             iv.startAnimation(AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_in));
             iv.setImageBitmap(bitmap);

        } 

    }

});

Volley不是自己处理重定向吗?关于可以在这里做什么的任何想法?

谢谢!

3 个答案:

答案 0 :(得分:3)

您只需致电

即可
HttpUrlConnection.setFollowRedirects(true);

适用于API 9或更高版本。

但是,it doesn't handle HTTP/HTTPS redirects

答案 1 :(得分:3)

此问题基本上与Android volley to handle redirect重复。要解决这个问题,你需要更改凌空,但有人已经在这个github中为你做了这个:github.com/samikirton/android-volley。希望有所帮助!

答案 2 :(得分:1)

它可能与Volley在2.2(apache)中使用的HTTP堆栈有关,而不是将HttpUrlConnection用于API 9及更高版本。

我对此不太确定,但也许您必须手动处理API 8的URL重定向。也就是说,获取HTTP响应,检查代码并根据标题创建新的请求(如果它是重定向代码)

编辑:

快速查看代码,提供给HttpClientStack(用于API 8的客户端)的客户端内部,在创建新的http客户端实例时,将显示以下代码(AndroidHttpClient第123行) :

// Don't handle redirects -- return them to the caller.  Our code
// often wants to re-POST after a redirect, which we must do ourselves.
HttpClientParams.setRedirecting(params, false);

您可以尝试将其更改为true,看看它是否能解决您的问题。我不确定你的需求是什么,但这看起来是一个好的开始。