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;
|
|
/**
|
* ================================================================
|
* <p>
|
* 版 权: Hunter(c)2020
|
* <p>
|
* 作 者: Hunter
|
* <p>
|
* 版 本: V1.0
|
* <p>
|
* 创建日期: 2020/7/22 9:25
|
* <p>
|
* 描 述:服务器连接客户端
|
* <p>
|
* <p>
|
* 修订历史:
|
* <p>
|
* ================================================================
|
*/
|
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();
|
}
|
|
}
|