2017-07-28 96 views
1
final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(mContext); 
      final OkHttpClient okHttpClient = new OkHttpClient.Builder() 
        .addInterceptor(new Interceptor() { 
         @Override 
         public okhttp3.Response intercept(Interceptor.Chain chain) throws IOException { 
          Request.Builder ongoing = chain.request().newBuilder(); 
          ongoing.addHeader("Cache-Control", "no-cache"); 
          ongoing.addHeader("User-Agent", System.getProperty("http.agent")); 
          ongoing.addHeader("authorization", sharedPreferences.getString("api_key","")); 
          return chain.proceed(ongoing.build()); 
         } 
        }) 
        .build(); 
      new Picasso.Builder(mContext).downloader(new OkHttp3Downloader(okHttpClient)).build().with(mContext).load(event.getPictureUrl()).into(holder.eventimage); 

我使用 com.squareup.picasso:picasso:2.5.2com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0com.squareup.okhttp3:okhttp:3.4.1 及其在头不发送任何东西。如何解决这个问题?OKHttp添加页眉

一旦我添加了这个Picasso.setSingletonInstance(picasso);后来我用毕加索工作。

+0

看到我的答案先生。如果仍然无法使用,请使用日志打印进行验证,可能是您没有获得授权密钥和User-Agent。 –

+0

它可能是您传递null拦截器的机会。 –

回答

0

试试这个。

Request getRequest = chain.request(); 
Request.Builder requestBuilder = getRequest.newBuilder() 
    .addHeader("Cache-Control", "no-cache"); 
    .addHeader("User-Agent", System.getProperty("http.agent")); 
    .addHeader("authorization", sharedPreferences.getString("api_key","")); 
Request request = requestBuilder.build(); 
return chain.proceed(request);