2

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

提前致谢...

4

1 回答 1

2

我已经了解了如何将基本身份验证标头设置到 ImageLoader 中。我误解了该链接同一主题的答案。所以功劳归于真正的回答者。无论如何,诀窍是将 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时,授权标头都会在其中。希望能帮助到你 !

于 2015-08-26T18:43:03.040 回答