package com.xiaomai.geek.data.net.client;
import android.app.Application;
import com.xiaomai.geek.data.pref.AccountPref;
import java.io.IOException;
import javax.inject.Inject;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
/**
* Created by XiaoMai on 2017/4/24.
*/
public class HttpClient extends CacheHttpClient{
@Inject
public Application application;
@Inject
public HttpClient() {}
public String getAcceptHeader() {
return "application/vnd.github.v3.json";
}
@Override
public OkHttpClient.Builder customize(OkHttpClient.Builder builder) {
builder = super.customize(builder);
builder.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request original = chain.request();
Request.Builder requestBuilder = original.newBuilder()
.header("Accept", getAcceptHeader()).header("User-Agent", "GitHub");
if (AccountPref.isLogin(application)) {
requestBuilder.header("Authorization",
"token " + AccountPref.getLoginToken(application));
}
Request request = requestBuilder.build();
return chain.proceed(request);
}
});
return builder;
}
}