在listView上,在其适配器的getView方法中,我需要为每个ListView项请求一个图像,以便通过NetworkImageView按项加载图片。问题是我需要在请求中添加身份验证标头,以允许用户从服务器获取图片。我已经阅读了一些无法实践的解决方案。
有人遇到过这个问题吗?
提前致谢...
答案 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 时,授权标头都会在其中。希望它有所帮助!