如何在Retrofit 2中同时调用多个请求

时间:2017-10-13 15:10:42

标签: java android retrofit2

如何在Retrofit 2中同时调用多个请求

我有2个不同的api,我想同时打电话给他们。我怎么能这样做?

谢谢!

2 个答案:

答案 0 :(得分:0)

只需创建一个传递两个服务器参数的观察者。 帮助下面的代码

OkHttpClient okHttpClient = new OkHttpClient().newBuilder().addInterceptor(new Interceptor() {
        @Override
        public okhttp3.Response intercept(Chain chain) throws IOException {
            Request originalRequest = chain.request();

            Request.Builder builder = originalRequest.newBuilder().header("Authorization",
                    Credentials.basic("aUsername", "aPassword"));

            Request newRequest = builder.build();
            return chain.proceed(newRequest);
        }
    }).build();

Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.example.com")
.client(okHttpClient)
.build();

Font

答案 1 :(得分:0)

您可以使用enqueue retrofit2方法同时异步调用多个请求。

以下是enqueue的文档:

  

/ **
  *异步发送请求并通知{@code callback}其响应或是否有错误   *发生与服务器通信,创建请求或处理响应   * /
      void enqueue(Callback callback);

这是伪代码,你可以这样做:

Call<MyResponse> call = retroService.getSomeData();
call.enqueue(new Callback<MyResponse>() {
  @Override
  public void onResponse(
  public void onFailure(
});