This is my current code for API CALL using Retrofit 2.0 and working fine
private void getWallet(String api_key) {
final ProgressDialog loading = new ProgressDialog(ActivityWallet.this, R.style.MyTheme);
loading.setCancelable(true);
loading.show();
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(Constants.BASERESTURL)
.client(httpClient)
.build();
EndPoints apiOrders = retrofit.create(EndPoints.class);
Call<ArrayList<Order>> call = apiOrders.getWallet(api_key);
call.enqueue(new Callback<ArrayList<Order>>() {
@Override
public void onResponse(Response<ArrayList<Order>> response, Retrofit retrofit) {
loading.dismiss();
ArrayList<Order> orders = response.body();
Utility.setOrders(orders);
AdapterOrder adapter = new AdapterOrder(getApplicationContext(), Utility.getOrders());
orderListView.setAdapter(adapter);
}
@Override
public void onFailure(Throwable t) {
Utility.displaySnackBar(coordinatorLayout, "INTERNET CONNECTION LOST");
loading.dismiss();
}
});
}
Now i need to add header in request. After googling i came to know that i can use okhttp. I made new code as below to add header in request:
private void getWallet(String api_key) {
final ProgressDialog loading = new ProgressDialog(ActivityWallet.this, R.style.MyTheme);
loading.setCancelable(true);
loading.show();
OkHttpClient httpClient = new OkHttpClient();
httpClient.networkInterceptors().add(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request().newBuilder().addHeader("test", "test").build();
return chain.proceed(request);
}
});
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(Constants.BASERESTURL)
.client(httpClient)
.build();
EndPoints apiOrders = retrofit.create(EndPoints.class);
Call<ArrayList<Order>> call = apiOrders.getWallet(api_key);
call.enqueue(new Callback<ArrayList<Order>>() {
@Override
public void onResponse(Response<ArrayList<Order>> response, Retrofit retrofit) {
loading.dismiss();
ArrayList<Order> orders = response.body();
Utility.setOrders(orders);
AdapterOrder adapter = new AdapterOrder(getApplicationContext(), Utility.getOrders());
orderListView.setAdapter(adapter);
}
@Override
public void onFailure(Throwable t) {
Utility.displaySnackBar(coordinatorLayout, "INTERNET CONNECTION LOST");
loading.dismiss();
}
});
}
But it is giving compilation error in this line return chain.proceed(request);
required: retrofit.Response
found: com.squareup.okhhtp.Response
After changing import to com.squareup.okhhtp.Response i m seeing lot of errors in retrofit response.
Can anyone help me what i am doing wrong? How to fix it?