我的应用程序需要从网上下载一些图片,而且我已经使用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不是自己处理重定向吗?关于可以在这里做什么的任何想法?
谢谢!
答案 0 :(得分:3)
您只需致电
即可HttpUrlConnection.setFollowRedirects(true);
适用于API 9或更高版本。
答案 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,看看它是否能解决您的问题。我不确定你的需求是什么,但这看起来是一个好的开始。