位置: IT常识 - 正文

使用Go http重试请求

编辑:rootadmin
原文连接:https://www.zhoubotong.site/post/78.html 开发中对于http请求是经常遇到,一般可能网络延迟或接口返回超时,对于发起客户端的请求, 除了设置超时时间外,请求重试是很有必要考虑的,我们不用重复造轮子,可以使用 https://github.com/ra ...

推荐整理分享使用Go http重试请求,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

使用Go http重试请求

原文连接:https://www.zhoubotong.site/post/78.html开发中对于http请求是经常遇到,一般可能网络延迟或接口返回超时,对于发起客户端的请求,

除了设置超时时间外,请求重试是很有必要考虑的,我们不用重复造轮子,可以使用https://github.com/rafaeljesus/retry-go第三方库,

retry-go的使用非常简单,如下是一个发起 HTTP Get 请求的重试示例 :

package mainimport ( "io/ioutil" "log" "net/http" "time" "github.com/rafaeljesus/retry-go")var ( attempts = 3 //最大重试次数 sleepTime = time.Second * 2 //重试延迟时间)func main() { _, err := retry.DoHTTP(func() (*http.Response, error) { return makeRequest() }, attempts, sleepTime) if err != nil { log.Print("retry.DoHTTP Failed") return } log.Print("retry.DoHTTP OK")}// 发送http请求func makeRequest() (*http.Response, error) { client := http.Client{ Timeout: 2 * time.Second, // 设置请求超时时间 } req, err := client.Get("https://www.baidu2.com") // 模拟不存在的url请求 if err != nil { log.Printf(err.Error()) return nil, err } body, err := ioutil.ReadAll(req.Body) if err != nil { log.Printf(err.Error()) return nil, err } log.Printf("响应数据 %v\\n", string(body)) defer req.Body.Close() res := &http.Response{} return res, nil}

运行结果:我们看到尝试执行了指定的3次请求次数。

本文链接地址:https://www.jiuchutong.com/zhishi/304649.html 转载请保留说明!

上一篇:c语言中有哪些循环语句(c语言中有哪些循环结构)

下一篇:phpcms hash数据验证失败怎么解决(php hash_hmac)

  • 需要出口
  • 老板自己出钱买股票
  • 住房公积金发票
  • 培训费用属于
  • 营业外收入怎么算增值税
  • 过路费可以入账吗
  • 公司之间房产过户免税条件
  • 支票的填写前应检查有哪些内容
  • 股权投资损失账务处理
  • 无效产权转移的契税需要征收吗
  • 建筑施工企业工伤保险费率
  • 办公场所转租赁需要交哪些税费
  • 股东转入投资款
  • 因增资扩股导致股价下跌
  • 无票销售纳税后怎么处理
  • 职工旅游费计入什么科目
  • 进项发票未抵扣部份开红冲后当月能抵扣吗?
  • 进项税抵扣的房租怎么算
  • 营改增后房地产开发税费一览表
  • 免税农产品的范围有哪些
  • 外账成本要注意什么
  • 预算会计的基本等式为
  • 食堂费用没有发票能挂账吗
  • 视同买断委托代销如何确认纳税时间?
  • 如何解决win10系统安装不兼容驱动的问题
  • windows10专业版是哪个版本
  • 应收账款零头会计处理
  • php常用的技术栈
  • 怎么看腾讯游戏
  • 发票抵扣条件
  • npfmntor.exe - npfmntor是什么进程 有什么用
  • php判断查询是否有结果
  • 购买生产用品计入什么科目
  • css flaot
  • 待安置期间生活补助费多少钱
  • 代理出口货物的合同
  • php三级分销思路
  • php中自定义函数的语法格式
  • 关于酒店采购
  • 技术服务型企业企业所得税率
  • 增值税电子发票怎么下载
  • mongodb数据库的作用
  • java--IO流 ☞ 字节流
  • 以前年度损益调整是什么意思
  • 专利技术资本化
  • SQL Server解析XML数据的方法详解
  • 收货和入库的区别
  • mysql错误代码1067
  • 纳税人销售货物
  • 专用发票与普通发票的区别有
  • 股东所有者权益负数
  • 持有至到期投资是债权投资吗
  • 暂估入库的材料领用时如何做账
  • 建筑业纳税人简易征收偷逃增值税
  • 收到个人退回的社保费,怎样做分录
  • 残联对残疾人的补助资金是多少
  • 民办幼儿园如何生存
  • 购入固定资产一次性扣除政策
  • 开票金额含税金的计算方法
  • 填制记账凭证有哪些
  • centosgui
  • 为保证win7安装后能正常使用,安装方法
  • windows server 2003 standard
  • centos7创建swap分区
  • xp系统怎样设置无线网络连接
  • linux的ftp命令
  • xp系统怎么和win7系统共享
  • centos bz
  • scanserver.exe - scanserver是什么进程 有什么用
  • WIN10更新WIN11卡在63%
  • win7桌面图标有小方块
  • 动作
  • 脚本被删除
  • python问题及解决方法
  • node.js基础入门
  • javascript主要学什么
  • 国家税务总局2012年20号公告
  • 广东税务查询系统
  • 资源税计税价格包括从坑口
  • 企业所得税年报什么时候开始申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设