android - 改造2/OKHttp3 : set custom per-request headers programatically

标签 android retrofit2 okhttp connection-timeout

如何使用 Retrofit2/OKHttp3 指定自定义每个请求的读/写/连接超时?类似的东西

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

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

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

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

最佳答案

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

示例:

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

关于android - 改造2/OKHttp3 : set custom per-request headers programatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52385167/

相关文章:

android - 无法在分离 View 上启动动画师

android - 找不到应用内购买项目

android - 正在发送多个改造调用,但有些从未收到响应或错误

android - 如何将 OkHttp 日志记录到 Crashlytics

java - 安卓okhttp库

java.io.EOFException :\n not found: limit=0 content=…

java - 在 Android 中使用带有 post 参数的 HttpClient 和 HttpPost

java - 在不知道类型的情况下读取文件

android - 为什么有人会在 Retrofit 中使用execute()函数

java - 如何在调用 API 中保存 Intent 值?