Retrofit2/OKHttp3:以编程方式设置自定义 per-request headers

Retrofit2/OKHttp3: set custom per-request headers programatically

如何使用 Retrofit2/OKHttp3 指定自定义 per-request read/write/connect 超时?像

Response<Listings> response = 
    ApiProvider.getServer1().getListings().setTimeouts(10000).execute();

当前超时设置为 30 秒,这很好,但在一种特定情况下,我受 10 秒执行限制的约束,我需要确保在此之前获得网络响应。

基于 this nice GitHub comment 我知道我可以使用 @Header 设置自定义超时并在 OKHttp 拦截器中解析它们,但如前所述,我只需要一个特定的自定义超时 API 在特定上下文中调用。

我还发现 (option 1) Using OkHttp 2.2+ use Interceptor), 但我看不出如何告诉拦截器我需要自定义超时。

要动态设置 header,您可以使用 @Header 注释将 header 的值作为参数传递给您的方法。

示例:

@GET("some/url")
Call<SomeClass> doSomething(@Header("CONNECT_TIMEOUT") String timeOut);