1

我的应用程序需要从网上下载一些图像,而几个月来我一直在使用 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 不自己处理重定向吗?关于可以在这里做什么的任何想法?

谢谢!

4

3 回答 3

3

你可以简单地打电话

HttpUrlConnection.setFollowRedirects(true);

适用于 API 9 或更高版本。

但是,它不处理 HTTP/HTTPS 重定向

于 2013-12-20T10:32:08.287 回答
3

这个问题基本上是Android volley to handle redirect的副本。为了解决这个问题,你需要改变 volley,但是有人已经在这个 github 上为你做了这个:github.com/samikirton/android-volley。希望有帮助!

于 2014-04-15T08:41:35.817 回答
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 ,看看它是否能解决您的问题。我不确定您的需求到底是什么,但这看起来是一个不错的起点。

于 2013-11-05T15:13:06.110 回答