向ImageLoader添加身份验证标头以进行NetworkImageView图片加载

时间:2015-08-26 13:12:43

标签: android-listview http-headers android-volley basic-authentication networkimageview

在listView上,在其适配器的getView方法中,我需要为每个ListView项请求一个图像,以便通过NetworkImageView按项加载图片。问题是我需要在请求中添加身份验证标头,以允许用户从服务器获取图片。我已经阅读了一些无法实践的解决方案。

提前致谢...

1 个答案:

答案 0 :(得分:2)

我已经了解了如何将基本身份验证标头设置为ImageLoader。我误解了该链接上的答案same topic。所以信用归于真正的回答者。 无论如何,诀窍是将HurlStack添加到 getRequestQueue 方法中,如下所示:

public RequestQueue getRequestQueue()
{
    if (mRequestQueue == null) {

        HurlStack stack = new HurlStack() {
            @Override
            public HttpResponse performRequest(Request<?> request, Map<String, String> headers)
                throws IOException, AuthFailureError {

                String auth = "Basic " + Base64.encodeToString((GlobalVariables.getInstance().getWS_KEY()+":").getBytes(),
                        Base64.NO_WRAP);
                headers.put("Authorization", auth);

                return super.performRequest(request, headers);
            }
        };
        mRequestQueue = Volley.newRequestQueue(getApplicationContext(),stack);
    }
    return mRequestQueue;
}

RequestQueue 对象放入Global类并应用单例模式,这意味着每当您请求 RequestQueue 时,授权标头都会在其中。希望它有所帮助!