在Android Studio中使用Glide如何在请求头中添加授权信息?

10

我正在使用Glide版本=4.7.1。

我不知道如何通过Glide进行图像验证。这是我所做的代码。

我创建了:

 private static final String AUTHORIZATION = "ss-id=doa3cx8OV3aGLThRrpnh;";
private static final String ABC = "application/json";

public static GlideUrl getUrlWithHeaders(String url){
    return new GlideUrl(url, new LazyHeaders.Builder()
            .addHeader("Cookie", AUTHORIZATION)
            .addHeader("Accept", ABC)
            .build());
}
String s = "http://192.168.1.144/api/download/" + mImageIds.get(position);
        GlideApp
                .with(mContext)
                .load(Headers.getUrlWithHeaders(s))
                .centerCrop()
                .transition(DrawableTransitionOptions.withCrossFade())
                .into((imageView));

任何帮助,

2个回答

28

这是Glide v3/v4的可用代码:

String url = "http://192.168.1.144/api/download/" + mImageIds.get(position);

GlideUrl glideUrl = new GlideUrl(url, 
    new LazyHeaders.Builder()
            .addHeader("Cookie", AUTHORIZATION)
            .addHeader("Accept", ABC)
            .build());

Glide.with(this)
    .load(glideUrl)
    .into(imageView);

1
很棒的解决方案!谢谢。 - Francis
太棒了!突然间我成功了,但是为什么使用授权头而不是Glide来检索图像这么难呢?因为我一直在尝试通过Picasso从服务器获取图像,但即使已经初始化了头文件,仍然无法工作。 - XVallerie
对于毕加索来说,这更容易。您只需要在Application类中执行一次即可覆盖整个应用程序。 - undefined

8

Kotlin

val url:String="https://URL.com/" + data[position].image_path;

val glideUrl = GlideUrl(
            url,
            LazyHeaders.Builder()
                .addHeader("Authorization", "Bearer $token")
                .build()
)


 Glide.with(mContext)
  .load(glideUrl)
  .into(holder.binding.img);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接