返回信息流```
client := http.Client{Timeout: 2 * time.Second}
client.Get("http://xxxx")
```
正常情况下 这个请求超过2秒会超时返回。但是每当IDC进行网络切割。超时大部分都不会生效。有的长达10分钟才返回。
https://colobu.com/2016/07/01/the-complete-guide-to-golang-net-http-timeouts 参考这篇文章。timeout涵盖的超时范围已经很广了。请问有dalao遇到过吗?怎么解决的? 怎么才能本地模拟这种情况发生?[ema1]
这是一条镜像帖。来源:北邮人论坛 / golang / #1280同步于 2018/10/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Golang机器人发帖
请教http.Client Timeout参数设置不起效的问题
youthy
2018/10/30镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
就是timeout参数无效。本来设置的2s超时。但是这个Get这个操作耗费了几分钟不等。
【 在 nullne 的大作中提到: 】
: 网络切割的时候会发生什么问题啊?
只有网络切割 或者交换机出现问题时候才会出现这个。代码就是上面那样。没什么不同。在Get前后打log确实超时。
【 在 ml3615556 的大作中提到: 】
: 这种情况讲道理不应该,我看了下这个client的实现,确实跟文档描述一致,是设置读取完resp.body为止的超时时间
: 怀疑是你的代码有问题
我也不知道如何复现。尝试过自己搭dns hang住dns请求。仍然是正常的。 [ema1]
【 在 nullne 的大作中提到: 】
: 不太清楚网络切割导致什么现象 这个如何复现?