package com.github.hunter0x7c7.sync.model.server; import com.github.hunter0x7c7.sync.model.server.net.interceptors.HeaderInterceptors; import com.github.hunter0x7c7.sync.model.server.net.interceptors.RestInterceptors; import okhttp3.OkHttpClient; import okhttp3.logging.HttpLoggingInterceptor; import retrofit2.Retrofit; import java.util.concurrent.TimeUnit; /** * ================================================================ *
* 版 权: Hunter(c)2020 *
* 作 者: Hunter *
* 版 本: V1.0 *
* 创建日期: 2020/7/22 9:25 *
* 描 述:服务器连接客户端 *
*
* 修订历史: *
* ================================================================ */ public class ServiceClient extends BaseServiceClient { private static ServiceClient sServiceClient; private ServiceClient() { } /** * 获取实例 */ public static ServiceClient getInstance() { if (sServiceClient == null) { synchronized (ServiceClient.class) { if (sServiceClient == null) { sServiceClient = new ServiceClient(); } } } return sServiceClient; } /** * 获取BaseUrl */ public String getBaseUrl() { return "https://www.baidu.com/"; } /** * 供应服务器接口 */ public ServiceApi provideServiceApi() { return provideServiceApi(getBaseUrl(), provideOkHttpClient()); } /** * 供应服务器接口 */ private ServiceApi provideServiceApi(String baseUrl, OkHttpClient okHttpClient) { Retrofit retrofit = getRetrofit(baseUrl, okHttpClient); return createServiceFrom(retrofit, ServiceApi.class); } // @Override // protected Retrofit getRetrofit(String baseUrl, OkHttpClient okHttpClient) { // return new Retrofit.Builder() // .addConverterFactory(new NullOnEmptyConverterFactory()) // .addConverterFactory(GsonConverterFactory.create(new GsonBuilder().setLenient().create())) // .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) // .baseUrl(baseUrl) // .client(okHttpClient) // .build(); // } /** * 供应OkHttp客户端 */ protected OkHttpClient provideOkHttpClient() { return getUnsafeOkHttpClientInstance().newBuilder() .addInterceptor((new HttpLoggingInterceptor()).setLevel(getLevel())) .addNetworkInterceptor(new HeaderInterceptors()) .addNetworkInterceptor(new RestInterceptors()) .connectTimeout(20, TimeUnit.SECONDS)//链接超时 .readTimeout(20, TimeUnit.SECONDS)//设置读取超时 // .retryOnConnectionFailure(true) // .proxy(Proxy.NO_PROXY) // .sslSocketFactory(ssl, trustManager) .build(); } }