Picasso加载图片添加请求头addHeader

        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());
        }
    }



        第三步就可以直接使用我们重写的LoginIntercetor一步步实例化Picasso并加载图片。
        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添加请求头就结束了。


你可能感兴趣的:(Android)