package com.photo.photogallery.network; import com.photo.photogallery.Config; import java.io.IOException; import okhttp3.HttpUrl; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; /** * Add default query parameters to every request we made to flickr * * &format=json&nojsoncallback=1&extras=owner_name,geo&api_key= * */ public class QueryInterceptor implements Interceptor { private static final String PARAM_API_KEY = "api_key"; private static final String PARAM_FORMAT = "format"; private static final String PARAM_NO_JSON_CALLBACK = "nojsoncallback"; private static final String PARAM_EXTRAS = "extras"; @Override public Response intercept(Chain chain) throws IOException { Request original = chain.request(); HttpUrl originalHttpUrl = original.url(); HttpUrl url = originalHttpUrl.newBuilder() .addQueryParameter(PARAM_API_KEY, Config.API_PARAM_API_KEY) .addQueryParameter(PARAM_FORMAT, Config.API_PARAM_RESPONSE_FORMAT) .addQueryParameter(PARAM_NO_JSON_CALLBACK, Config.API_PARAM_NO_JSON_CALLBACK) .addQueryParameter(PARAM_EXTRAS, Config.API_PARAM_EXTRAS) .build(); // Request customization: add request headers Request.Builder requestBuilder = original.newBuilder() .url(url); Request request = requestBuilder.build(); return chain.proceed(request); } }