单独的模块去封装网络,通过伴生对象以及懒加载来增加安全性,通过okhttp和retrofit结合,来进行网络请求,创建了一个create方法来拼接url。
class HttpManager {
companion object{
val instance by lazy(LazyThreadSafetyMode.SYNCHRONIZED){
HttpManager()
}
}
private fun getOkhttp():OkHttpClient{
return OkHttpClient.Builder()
.addInterceptor(HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))
.writeTimeout(5,TimeUnit.SECONDS)
.readTimeout(5,TimeUnit.SECONDS)
.connectTimeout(5,TimeUnit.SECONDS)
.build()
}
private fun getRetrofit():Retrofit{
return Retrofit.Builder()
.baseUrl(BuildConfig.Base_url)
.client(getOkhttp())
.addConverterFactory(GsonConverterFactory.create())
.build()
}
fun <T> create(clazz:Class<T>):T{
return getRetrofit().create(clazz)
}
}