Volley Library提供意外的响应代码302

时间:2015-06-08 05:41:31

标签: android facebook facebook-graph-api android-volley

我正在开发一款具有登录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

2 个答案:

答案 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