I'm using apollo-GraphQL for API response. I have set token in Interceptor class. In main activity I'm using apolloClient, in which I'm passing query to fetch data.
I'mm getting API response from interceptor class but not getting query response.
public class HttpInterceptor implements Interceptor {
@Override public Response intercept(Interceptor.Chain chain) throws IOException {
java.util.logging.Logger logger = java.util.logging.Logger.getLogger("okhttp");
String BASE_URL = "url_example.json";
Response response = null;
Request request = chain.request();
request =chain.request();
request = request.newBuilder()
.url(BASE_URL)
.header("token_key", "token_value")
.build();
long t1 = System.nanoTime();
logger.info(String.format("Sending request %s on %s%n%s",
request.url(), chain.connection(), request.headers()));
response = chain.proceed(request);
long t2 = System.nanoTime();
logger.info(String.format("Received response for %s in %.1fms%n%s",
response.request().url(), (t2 - t1) / 1e6d, response.headers()));
return response;
}
code of Application class:
private static final String BASE_URL = "url_example.json";
private ApolloClient apolloClient;
@Override public void onCreate() {
super.onCreate();
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.addInterceptor(new HttpInterceptor())
.build();
apolloClient = ApolloClient.builder()
.serverUrl(BASE_URL)
.okHttpClient(okHttpClient)
.build();
}
public ApolloClient apolloClient() {
return apolloClient;
}
code or MainActivity:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
application = (SampleApplication) getApplication();
content = (ViewGroup) findViewById(R.id.rl_content_holder);
progressBar = (ProgressBar) findViewById(R.id.loading_bar);
RecyclerView collectionRecyclerView = (RecyclerView) findViewById(R.id.rv_collection_list);
mCollectionAdapter = new CollectionAdapter(this);
collectionRecyclerView.setAdapter(mCollectionAdapter);
collectionRecyclerView.setLayoutManager(new LinearLayoutManager(this));
fetchCollection();
}
ApolloCall.Callback<ShopifyCollections.Data> mDataCallback =
new ApolloCall.Callback<ShopifyCollections.Data>() {
@Override
public void onResponse(@Nonnull com.apollographql.apollo.api.Response<ShopifyCollections.Data> response) {
Log.i("Shopify CallBack",response.toString());
}
@Override
public void onFailure(@Nonnull ApolloException e) {
Log.e(TAG, e.getMessage(), e);
}
};
public void fetchCollection(){
mHttpClient = new OkHttpClient.Builder()
.addInterceptor(new HttpInterceptor())
.build();
ShopifyCollections collectionQuery = ShopifyCollections.builder()
.limit(250)
.build();
collectionCall = application.apolloClient().newCall(collectionQuery);
collectionCall.enqueue(mDataCallback);
}
Query :
query ShopifyCollections($limit: Int!){
shop{
name
collections(first: $limit)
{
edges{
node{
title
id
image{
src
}
}
}
}
}
}