package org.telegram.network;
import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import org.telegram.network.log.LogInterceptor;
import java.util.concurrent.TimeUnit;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
/**
* Retrofit
*/
public class RetrofitClient {
private static Retrofit sRetrofit;
private RetrofitClient() {
OkHttpClient.Builder client = new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)//设置超时时间
.retryOnConnectionFailure(true)
// .addInterceptor(HeadInterceptor.getDefaultFixedHeaderInterceptor())//设置头部信息
// .addInterceptor(new BodyInterceptor())//添加统一的 body 和签名
.addInterceptor(LogInterceptor.getLogInterceptor())//打印 log
;
sRetrofit = new Retrofit.Builder()
.client(client.build())
.baseUrl(UrlConfig.getInstance().BASE_URL)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
// .addConverterFactory(ErrorCodeConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
}
private static class SingleInstance {
static RetrofitClient sApiClient = new RetrofitClient();
}
public static RetrofitClient getInstance() {
return SingleInstance.sApiClient;
}
public <T> T request(Class<T> tClass) {
return sRetrofit.create(tClass);
}
}