我目前正在使用Retrofit2,我想知道拨打新电话的最佳方法。
在当前应用中,我有一个实现单例模式的服务:
public final class Services
{
private static volatile Services instance;
public static Services getInstance()
{
if (instance == null)
{
synchronized (Services.class)
{
if (instance == null)
{
instance = new Services();
}
}
}
return instance;
}
private final IServices myServices;
public Services()
{
final Retrofit.Builder retrofitBuilder = new Retrofit.Builder();
retrofitBuilder.client(new OkHttpClient.Builder().build());
myServices = retrofitBuilder.build().create(IServices.class);
}
public void myCall(@NonNull String param)
{
//...
}
}
调用myCall
进入myServices.aGetRequest(param).execute();
方法,例如:IServices
现在,例如,我想修改请求(例如添加一些标头),但没有拦截器并进行调用。最好的方法是什么?
在okhttp3.Call.Factory
界面上,我无法访问newCall
来呼叫Retrofit
。但是我可以使用callFactory
方法从IServices
类进行此访问。
在Retrofit
类中保留对Services
和myCall
类的引用是一种好模式,以便对public void myCall(@NonNull String param)
{
retrofit.callFactory().newCall(myServices.aGetRequest(param).request().newBuilder().addHeader("MY_HEADER_KEY", "MY_HEADER_VALUE").build()).execute();
}
做类似的事情方法?
powershell -Command 'vagrant up'