package com.dayu.qiheonlinelibrary.net; 
 | 
  
 | 
  
 | 
  
 | 
import com.dayu.baselibrary.BuildConfig; 
 | 
  
 | 
import java.util.concurrent.TimeUnit; 
 | 
  
 | 
import okhttp3.OkHttpClient; 
 | 
import okhttp3.logging.HttpLoggingInterceptor; 
 | 
import retrofit2.Retrofit; 
 | 
import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory; 
 | 
import retrofit2.converter.gson.GsonConverterFactory; 
 | 
  
 | 
/** 
 | 
 * Copyright (C), 2023, 
 | 
 * Author: zuo 
 | 
 * Date: 2023-03-27 14:56 
 | 
 * Description: 
 | 
 */ 
 | 
public class RetrofitClient { 
 | 
  
 | 
//    private static final String BASE_URL = " http://114.116.229.87/api/"; 
 | 
  
 | 
    private static RetrofitClient mInstance; 
 | 
    private Retrofit retrofit; 
 | 
    private static final int READ_TIME_OUT = 10; 
 | 
    private static final int CONNECT_TIME_OUT = 10; 
 | 
  
 | 
    private RetrofitClient() { 
 | 
        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(); 
 | 
        // 包含header、body数据 
 | 
        loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
 | 
//        loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS); 
 | 
        OkHttpClient.Builder builder = new OkHttpClient().newBuilder(); 
 | 
        //设置连接和读取时间 
 | 
        builder.readTimeout(READ_TIME_OUT, TimeUnit.SECONDS); 
 | 
        builder.connectTimeout(CONNECT_TIME_OUT, TimeUnit.SECONDS); 
 | 
        builder.writeTimeout(CONNECT_TIME_OUT, TimeUnit.SECONDS); 
 | 
        //添加统一的header 
 | 
        builder.addInterceptor(new MyIntercepterApplication()); 
 | 
        //添加日志拦截器 
 | 
        //添加数据请求统一处理拦截器 
 | 
        if (BuildConfig.DEBUG) { 
 | 
            builder.addInterceptor(loggingInterceptor); 
 | 
        } 
 | 
  
 | 
        OkHttpClient client = builder.build(); 
 | 
  
 | 
        retrofit = new Retrofit.Builder() 
 | 
                .baseUrl(Constants.BASE_URL) 
 | 
                .addConverterFactory(GsonConverterFactory.create()) 
 | 
                .addCallAdapterFactory(RxJava3CallAdapterFactory.create()) 
 | 
                .client(client).build(); 
 | 
    } 
 | 
  
 | 
    public static synchronized RetrofitClient getInstance() { 
 | 
        if (mInstance == null) { 
 | 
            mInstance = new RetrofitClient(); 
 | 
        } 
 | 
        return mInstance; 
 | 
    } 
 | 
  
 | 
    public ApiService getApiService() { 
 | 
        return retrofit.create(ApiService.class); 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |