request canceled 求解http超时的正确设置方式

yinshidaoshi · · 1739 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

``` client := &http.Client{ Timeout: time.Second * 20, Transport: &http.Transport{ Proxy: proxy, }, } resp, err := client.Get(url) if err != nil||resp.StatusCode != 200 { return msg, err //网络错误逻辑判断 } defer resp.Body.Close() byslice, err := ioutil.ReadAll(resp.Body) if err != nil { return msg, err//io流转数组错误 } ``` 自己做过一个根据图片URL分析图片信息的项目,关于http请求的代码就是这些,为了防止出现一直请求但没有响应的情况,所以手动加了个timeout。 现在遇到了新的问题,请求大型图片的时候,url能正常请求到所以不会走网络错误逻辑判断,但因为timeout会报request canceled,所以想问一下,**怎么合理设置timeout,以及http包中各个timeout的作用** 想给改成**请求只要有数据流通的时候永远不会超时这种效果**

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1739 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传