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

时间:2018-09-18 11:05:11

标签: android retrofit2 okhttp3 connection-timeout

如何使用Retrofit2 / OKHttp3指定自定义的按请求的读取/写入/连接超时?像

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

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

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

我还发现this answer(选项 1)使用OkHttp 2.2+使用了Interceptor ),但是我看不到如何告诉拦截器我需要自定义超时。

1 个答案:

答案 0 :(得分:2)

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

示例:

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