如何使用Retrofit2拨打新电话?

时间:2018-11-13 09:17:56

标签: android retrofit2

我目前正在使用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类中保留对ServicesmyCall类的引用是一种好模式,以便对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'

0 个答案:

没有答案