网络超时时间不一致
发布于 6 年前 作者 kyu 9171 次浏览 来自 问答

- 当前 Bug 的表现(可附上截图)


有两个接口,第一个10s 超时报错之后,第二个虽然也超出了时间10s,但是照样完成了请求,并成功返回(12s返回)。


容我细细道来

首先,场景是这样的,有两个请求(getProductCnt,isEnroll),在接口请求开始,success,fail与complete均打印出相关信息与时间,另外,networkTimeoutrequest时间是10s


1、如下,发起getProductCnt请求,可以看到红框中,请求时间是2018-11-01 16:47:38




也可以在这张图看到,这个时间是小程序自己输出的。请求时间是2018-11-01 16:47:38




2、如下,发起isEnroll接口请求可以看到红框中,请求时间也是2018-11-01 16:47:38




3、接下来就是响应,首先是getProductCnt请求失败,可以看到,红框中请求失败的时间是2018-11-01 16:47:48,非常标准的符合10s超时,下面也有小程序报出来的超时错误




4、最后我们来看下,isEnroll的接口请求,此时可以看到,红框中请求完成的时间是2018-11-01 16:47:50,系统也标出了request success的时间。

问题来了: isEnroll接口从请求开始到请求完成,一共经历了12s,而上一个接口getProductCnt则在10s,就准时报错。




- 预期表现

   

请求超时应该都进入fail,报tomeout错误信息。


还有一个疑问,小程序的request原理是怎么样的。会不会有情况是一个接口超时之后,会将超时重置?

2 回复

你好,这里的逻辑是,单次 request 中间如果有数据包回来,就会重置 timeout,不是整个 session 的超时

回到顶部