如何使用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 ),但是我看不到如何告诉拦截器我需要自定义超时。
答案 0 :(得分:2)
要动态设置标头,可以使用@Header
批注将标头的值作为参数传递给方法。
示例:
@GET("some/url")
Call<SomeClass> doSomething(@Header("CONNECT_TIMEOUT") String timeOut);