2016-09-19 10 views
1

私はこのtutorialRetrofit2:迎撃

問題ですべての要求にクエリパラメータ(アクセストークン)を追加しようとしているとクエリパラメータにアクセストークンを追加することで作成されたすべての要求に計上されますカウントインターセプタであり、 ServiceGenerator:

httpClient.addInterceptor(new Interceptor() { 

はまたのHttpClientが静的である引き起こし、すべてのインターセプタは、それが必要としない要求で実行されます。

通常のリクエストに対して独自のOkHttpClientを作成する必要がありますか?インターセプタとオーセンティケータを一度だけ初期化してからServiceGeneratorを使用する必要がありますか?それとも良い方法がありますか?

+0

あなたは、いくつかのクライアントを作成することができたりなどのヘッダを追加します。

okHttpClient = new OkHttpClient.Builder() .cache(setCache(context)) .certificatePinner(certificatePinnerBuilder.build()) .retryOnConnectionFailure(false) .readTimeout(READ_TIMEOUT, TimeUnit.MILLISECONDS) .connectTimeout(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS) .addInterceptor(new Interceptor() { @Override public okhttp3.Response intercept(Chain chain) throws IOException { Request original = chain.request(); Request request = original.newBuilder() .header("Content-type", "application/json") .header("AUTH_TOKEN", token) .method(original.method(), original.body()) .build(); return chain.proceed(request); } }) .addInterceptor(logger) .build(); 

しかし、あなたがこのリンクをたどることができます改造要求のヘッダーファイル –

答えて