2015-10-31 1 views
1

Я ломает мой мозг на этом,андроид библиотека Picasso добавить маркер заголовка

Я использую библиотеку Пикассо загружать и скачивать изображения с моего сервера, но теперь я хочу, чтобы добавить заголовок в моей просьбе скачать и Кажется, я не могу найти способ сделать это. все, что я хочу сделать, это установить заголовок как: setHeader («Авторизация», «Знаменщик» + токен);

Я использую этот заголовок в любом из моих запросов на сервер, но не могу найти способ добавить его к линии picasso.

Любая помощь будет оценена, спасибо!

ответ

1

Picasso использует OkHttp как двигатель, или можно настроить Picasso использовать его, и так как вы должны установить заголовок запроса HTTP, вы можете использовать Interceptor. Например. это мой перехватчик для обработки базовой аутентификации:

private static class BasicAuthInterceptor implements Interceptor { 

    @Override 
    public Response intercept(Chain chain) throws IOException { 
     final Request original = chain.request(); 
     final Request.Builder requestBuilder = original.newBuilder() 
       .header("Authorization", "Basic " + BASIC_AUTH_ENCODED) 
     .method(original.method(), original.body()); 
     return chain.proceed(requestBuilder.build()); 
    } 
} 

и добавить Перехватчик к OkHttp как

OkHttpClient okHttpClient = new OkHttpClient(); 
okHttpClient.interceptors().add(new BasicAuthInterceptor()); 

Последний шаг заключается в настройке Picasso использовать okHttpClient. строитель Пикассо обеспечивают способ для этого:

new Picasso.Builder(context).downloader(new OkHttpDownloader(okHttpClient)).build(); 

Gradle зависимостей:

compile 'com.squareup.okhttp3:okhttp:3.0.1' 
compile 'com.squareup.picasso:picasso:2.5.0' 
+0

вы должны следовать этому подходу. – Kitesurfer

+0

спасибо большое! Какова линия компиляции для okhttpclient? –

+0

также я вижу, что Interceptor не предоставляется в моей студии Android, он поставляется с OkHttpclient? потому что на данный момент я не могу реализовать его –