package com.example.mvp_rxjava.api;
import android.util.Log;
import java.util.concurrent.TimeUnit;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
/**
* Created by Administrator on 2018/1/3.
*/
public class Fengzhuang {
private static Fengzhuang fengzhuang;
//单例
public static Fengzhuang getfengzhuang(){
if (fengzhuang == null){
synchronized (Fengzhuang.class){
if (fengzhuang == null){
fengzhuang = new Fengzhuang();
}
}
}
return fengzhuang;
}
private static Retrofit retrofit;
//封装Retrofit网络请求
public static synchronized Retrofit getretrofit(){
//日志拦截器可加可不加
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
Log.i("tag", message);
}
});
//日志拦截器
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
//OK方法
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.connectTimeout(3000, TimeUnit.SECONDS)
.build();
//retrofit适配器
if (retrofit == null){
retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.client(okHttpClient)
.baseUrl(Api_class.API_QIAN)
.build();
}
return retrofit;
}
//泛型
public <T>T getapiserves (Class<T> cl){
retrofit = getretrofit();
return Fengzhuang.retrofit.create(cl);
}
}
日志拦截器依赖
//日志拦截器
compile('com.github.ihsanbal:LoggingInterceptor:2.0.3') {
exclude group: 'org.json', module: 'json'}
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}