gpt4 book ai didi

android - 改造第一个请求需要精确的 OkHttpClient 超时

转载 作者:行者123 更新时间:2023-11-29 02:25:27 25 4
gpt4 key购买 nike

我正在使用 Retrofit 和 OkHttpClient 在 Android 上构建 Rest API。

前段时间,我注意到 api 发出的第一个请求总是比所有其他请求花费更长的时间来处理......一开始我并不在意,因为这是一个可以接受的时间。

但是请求时间突然跳到60秒

所有这些时间都是浪费客户端,因为监控服务器我看到处理时间不到 1 秒...

我想知道我做了什么更改会造成如此大的影响,然后我意识到我更改了 OkHttp 的连接超时。

为了测试,我将值从 10 秒更改为 60 秒...

我做了一些实验,将 connectTimeout 设置为许多其他值,并且总是第一个请求花费的时间略高于超时

有谁知道是什么导致了这种奇怪的行为?如何解决?

附言。我需要在桌面上测试 api 并且没有出现这个问题,我的意思是它只发生在 android 设备上 [我尝试了几个] 是什么原因?

最佳答案

https://medium.com/inloopx/okhttp-is-quietly-retrying-requests-is-your-api-ready-19489ef35ace

它很可能在前几个请求上失败并超时。 OkHTTP 正在自动重试。

builder.retryOnConnectionFailure(false);

尝试关闭自动重试,看看会发生什么。

https://www.reddit.com/r/gfycat/comments/5y2dkm/psa_for_android_devs_how_to_work_around_ipv6/

这可能是 ipv4 与 ipv6 的问题。此代码优先考虑 ipv4 地址。

关于android - 改造第一个请求需要精确的 OkHttpClient 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52502876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com