Retrofit 针对不同baseUrl和不同SSLContext的多个改装对象
我正在编写与四个不同服务器通信的代码,其中一个服务器需要两种不同类型的SSL 我创建了四次翻新对象,以获得四个具有不同baseURL的接口。就像Retrofit 针对不同baseUrl和不同SSLContext的多个改装对象,retrofit,retrofit2,Retrofit,Retrofit2,我正在编写与四个不同服务器通信的代码,其中一个服务器需要两种不同类型的SSL 我创建了四次翻新对象,以获得四个具有不同baseURL的接口。就像 InterfaceOne one = new Retrofit.Builder() .baseUrl("address1") .build() .create(InterfaceOne.class); InterfaceTwo two = new Retrofit.Builder
InterfaceOne one = new Retrofit.Builder()
.baseUrl("address1")
.build()
.create(InterfaceOne.class);
InterfaceTwo two = new Retrofit.Builder()
.baseUrl("address2")
.build()
.create(InterfaceTwo.class);
InterfaceThree three = new Retrofit.Builder()
.baseUrl("address3")
.build()
.create(InterfaceThree.class);
InterfaceFour four = new Retrofit.Builder()
.baseUrl("address4")
.build()
.create(InterfaceFour.class);
对我来说,这就像是重复代码。所以我的第一个问题是,这是一个处理四种不同baseURL的好结构吗
对于具有两种不同SSL的服务器,我将使用如下结构。但对我来说已经很难看了
OkHttpClient okhttp = new OkHttpClient.Builder()
.sslSocketFactory(getSSLContextOne().getSocketFactory())
.build();
interfaceFour_1 = new Retrofit.Builder()
.client(okhttp)
.baseUrl("address4")
.build()
.create(InterfaceFour_1.class);
OkHttpClient okhttp2 = new OkHttpClient.Builder()
.sslSocketFactory(getSSLContextTwo().getSocketFactory())
.build();
interfaceFour_2 = new Retrofit.Builder()
.client(okhttp2)
.baseUrl("address4")
.build()
.create(InterfaceFour_2.class);
有没有更好的方法来改进当前的代码