package com.bwei.retiodit_rxjava_mvp.data.utils;
import com.bwei.retiodit_rxjava_mvp.data.Api;
import java.sql.Time;
import java.util.concurrent.TimeUnit;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
/**
* Created by JackLee on 2018/9/5.
*/
public class RetrofitUtil {
private static RetrofitUtil retrofitUtil;
private final OkHttpClient client;
private Retrofit retrofit;
private RetrofitUtil(){
client = new OkHttpClient.Builder()
.addInterceptor(new Interceptor())
.connectTimeout(5000, TimeUnit.MICROSECONDS)
.readTimeout(5000, TimeUnit.MICROSECONDS)
.build();
}
public static RetrofitUtil getInstance(){
if (null==retrofitUtil){
synchronized (RetrofitUtil.class){
if (null==retrofitUtil){
retrofitUtil= new RetrofitUtil();
}
}
}
return retrofitUtil;
}
public Api getApi(String baseUrl){
retrofit = new Retrofit.Builder()
.client(client)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(baseUrl)
.build();
Api api = retrofit.create(Api.class);
return api;
}
class Interceptor implements okhttp3.Interceptor{
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
String method = request.method();
HttpUrl url = request.url();
Log.e("LogInterceptor", method + "..." + url);
Response proceed = chain.proceed(request);
return proceed;
}
}
}