首页 > 解决方案 > Retrofit & OkHttp - 是否可以一次只发送一个请求?

问题描述

我正在使用 Retrofit 2.4.0 向服务器发送请求。但有时服务器会阻止我的请求,如果它与另一个请求具有类似的时间戳(以毫秒为单位)。我需要一次发送一个请求:

  1. 发送请求 A
  2. 请求 B 等待,直到收到请求 A 的响应
  3. 请求 A 以成功或错误完成
  4. 发送请求 B

是否可以使用 Retrofit 和 OkHttp 库创建这样的队列?

标签: androidretrofitretrofit2okhttpokhttp3

解决方案


我决定使用 Dispatcher 的 setMaxRequests 方法一次发送一个请求:

Dispatcher dispatcher = new Dispatcher();
dispatcher.setMaxRequests(1);

OkHttpClient client = new OkHttpClient.Builder()
                .dispatcher(dispatcher)
                .build()

推荐阅读