我正在开发一款具有登录facebook和gmail功能的应用程序。 要从facebook和gmail加载图片,我正在使用排球。
对于gmail,它工作正常,但对于fb,它给了我一个错误:
E/Volley﹕ [380] BasicNetwork.performRequest: Unexpected response code 302 for http://graph.facebook.com/831173210283387/picture?type=large
我看了this,但没有发生任何事情
代码段:
ImageLoader.ImageCache imageCache = new BitmapLruCache()
ImageLoader imageLoader = new ImageLoader(Volley.newRequestQueue(mContext), imageCache);
imageLoader.get(pic_url, ImageLoader.getImageListener(holder.profile,
R.drawable.ic_user, R.drawable.ic_user));
我读了一些堆栈溢出回答,据此我也尝试过:
HttpsURLConnection.setFollowRedirects(true);
pic_url.replace("https", "http");
Log.d("Photo url", pic_url);
这是我的脸书照片网址
http://graph.facebook.com/831173210283387/picture?type=large
答案 0 :(得分:3)
要解决重定向问题,请尝试此操作。您将在图像变量中获取图片网址。
//loginBtn = Facebook login button
loginBtn.setUserInfoChangedCallback(new UserInfoChangedCallback() {
@Override
public void onUserInfoFetched(GraphUser user) {
// TODO Auto-generated method stub
if (user != null) {
Session session = Session.getActiveSession();
if (session.isOpened()) {
Log.i("AccessToken", session.getAccessToken());
}
String image = "";
String id = user.getId();
try {
URL image_path = new URL("http://graph.facebook.com/"
+ id + "/picture?type=large");
image = image_path + "";
Log.i("image::> ", image_path + "");
} catch (MalformedURLException e) {
e.printStackTrace();
}
} else {
//ELSE PART
}
}
});
当提供的网址重定向到另一个网址时,Volley会抛出302。您在Volley中提供了facebook的图表网址,当您在浏览器中打开该网址时,它会将您重定向到另一个网址。
答案 1 :(得分:1)
能否请您在基本URL中添加“ s”,例如:https
简而言之,如果替换您的URL http ---> https 要么 https ---> http