Retrofit2 / OKHttp3:以编程方式设置自定义每请求标头

问题描述 投票:2回答:1

如何使用Retrofit2 / OKHttp3指定自定义每请求读/写/连接超时?就像是

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

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

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

我还发现this answer(选项1)使用OkHttp 2.2+使用拦截器),但我看不出我怎么能告诉拦截器我需要自定义超时。

android retrofit2 okhttp3 connection-timeout
1个回答
2
投票

要动态设置标题,可以使用@Header批注将标头值作为参数传递给方法。

例:

@GET("some/url")
Call<SomeClass> doSomething(@Header("CONNECT_TIMEOUT") String timeOut);
© www.soinside.com 2019 - 2024. All rights reserved.