Picasso是Android图片加载强大的第三方库,用法非常简单。github
Picasso.with(this).load(imageUrl).into(imageView);
一般情况下,图片直接放在文件服务器上,但是在特殊的情况下,为了安全考虑,文件服务器可能会加身份认证,这就需要在网络请求时添加特定的请求头信息。那么怎么做呢,在翻阅了github上面的issues后,得到了解决方案。下面贴上博主的代码,希望能帮到大家。
首先,要添加Picasso和okhttp的jar(也可以直接用library dependency依赖)。
第二步实现Interceptor重写intercept方法。
public class LoginInterceptor implements Interceptor {
public LoginInterceptor() {
}
@Override
public Response intercept(Chain chain) throws IOException {
Request.Builder request = chain.request().newBuilder();
request.addHeader("Cookie", HybridApp.getInstance().getLoginCookies());
return chain.proceed(request.build());
}
}
final OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.interceptors().add(new LoginInterceptor());
Picasso picasso = new Picasso.Builder(HomeActivity.this).downloader(new OkHttpDownloader(okHttpClient)).build();
picasso.load(imageUrl).placeholder(R.mipmap.ic_launcher).into(imageView);
到此,给picasso添加请求头就结束了。
本文介绍了如何在使用Picasso进行Android图片加载时添加请求头,以应对需要身份认证的文件服务器。通过添加OkHttp拦截器实现,步骤包括添加相关库依赖和自定义Interceptor来设置请求头。

1344

被折叠的 条评论
为什么被折叠?



