如何在Retrofit 2中同时调用多个请求
我有2个不同的api,我想同时打电话给他们。我怎么能这样做?
谢谢!
答案 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();
答案 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(
});