Golang支持重试的http客户端ghttp
简介
官方仓库:https://github.com/GuoFlight/ghttp
重试的逻辑依赖了github.com/avast/retry-go
入门
client := ghttp.Client{
Method: ghttp.MethodGet,
Url: "https://www.baidu.com",
}
res, err := client.Do()
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res.Detail.StatusCode) //输出状态码
请求失败则自动重试
package main
import (
"errors"
"fmt"
"github.com/GuoFlight/ghttp"
"github.com/avast/retry-go"
)
func main() {
client := ghttp.Client{
Method: ghttp.MethodGet,
Url: "https://www.baidu.com",
Retry: ghttp.Retry{
JudgeRetryFunc: func(res *ghttp.Res) error {
return errors.New("error") //模拟错误
},
Options: []retry.Option{
retry.Attempts(2), //最多重试2次
},
},
}
res, err := client.Do()
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res.Detail.StatusCode)
}
Golang支持重试的http客户端ghttp的更多相关文章
- 咏南中间件支持TMS WEB CORE客户端
咏南中间件支持TMS WEB CORE客户端 TMS WEB CORE是优秀的JS前端,搭配咏南中间件后端,可以进行快速的企业应用开发.
- hustOJ 添加 golang 支持
hustOJ 支持Go1.7.1 是否为docker环境不重要,此处所有内容均为docker中执行,普通主机手动安装则更加如此 建议在docker中执行,因为OJ为严控恶意权限,judge_clien ...
- golang文件下载断点续传(下载客户端)
客户端: //const ( // UA = "Golang Downloader from Kejibo.com" //) func DownloadController(ctx ...
- gprc-java与golang分别实现服务端,客户端,跨语言通信(二.golang实现)
1.编译器protoc, 下载地址:https://github.com/protocolbuffers/protobuf/releases (下载对应的版本, 解压后放到go的bin中) 2.安装 ...
- gprc-java与golang分别实现服务端,客户端,跨语言通信(一.java实现)
1.在pom中引入 <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-netty< ...
- SSM整合 完美支持RESTful(Jsp和客户端<android ios...>)
一 RESTful简介 RESTful是一种网络应用程序的设计风格和开发方式 它结构清晰 符合标准 易于理解 扩展方便 REST 即Representational State Transfer的缩写 ...
- 弄了一个支持SSL的TCP客户端
近日需要做一些TCP的收发的调试,到网上去找TCP调试工具,找了好几款,发现不是功能不全就是不支持HEX,更重要的SSL也不支持,于是动手写了一款,叫TCPRunner,有以下特性: 使用异步IO方式 ...
- PLSQL Developer不支持Oracle 64位客户端解决方法
问题描述: 在虚拟机同网段,搭建Oracle 11.2.04数据库64位的,本机操作系统Win10 x64和PLSQL 9.03,目前想利用PLSQL远程登录ORACLE数据库操作.当初用 insta ...
- OpenSUSE下支持托盘的邮件客户端Sylpheed
在网上搜索了很多客户端想支持系统托盘,发现一个很不错的邮件客户端Sylpheed.设置方式和foxmail很像,最为重要的是支持系统托盘,很方便,默认没有开启,简单设置下:配置->通用首选项-& ...
- linux下支持托盘的邮件客户端Sylpheed
在网上搜索了很多客户端想支持系统托盘,发现一个很不错的邮件客户端Sylpheed.设置方式和foxmail很像,最为重要的是支持系统托盘,很方便,默认没有开启,简单设置下:配置->通用首选项-& ...
随机推荐
- [Contract] ETH 与 Gas 之间的价格转换关系, Ethereum Gas Price Chart
以太坊网络每天的平均气价(Gas)是变化,有一张价格表:https://etherscan.io/chart/gasprice 然后你可以知道 1 Gas = xx Gwei,再换算一下 1 ETH ...
- Apache Pulsar 桌面端图形化管理工具
Apache Pulsar 桌面端图形化管理工具 Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息.存储.轻量化函数式计算为一体,采用计算与存储 ...
- 06 curl 操作elasticsearch的CRUD
目录 查看健康状态 查询当前es集群中所有的indices 创建索引并配置: 创建索引 删除索引 获取mapping 创建mapping 添加字段 插入记录 检索 修改 删除 中文文档: https: ...
- css :not()选择器使用
前言:这是一个vue的项目,引入了一个reset.css,重写了几乎所有标签的默认样式.项目中需要渲染富文本,里面包含了很多标签,例如:<h1>这是一个大标题</h1>,这个时 ...
- JavaScript前端时间库moment.js
1.获取当前时间 moment().format("YYYY-MM-DD HH:mm:ss"); moment().format("YYYY-MM-DD"); ...
- spring-boot集成Quartz-job存储方式二RAM
简单区分: RAM:程序启动从数据库中读取原始job配置(也可以从配置文件中读取),job中间运行过程在RAM内存中,程序停止或重启后,RAM中数据丢失,再次启动的时候会重新读取job配置.适合于单机 ...
- 详解GaussDB(DWS)中的行执行引擎
本文分享自华为云社区<GaussDB(DWS)行执行引擎详解>,作者:yd_227398895. 1.前言 GaussDB(DWS)包含三大引擎,一是SQL执行引擎,用来解析用户输入的SQ ...
- .NET 采用开源软件OpenOffice 实现文档转码服务(word ppt excel)转PDF
前言 前几年做了个项目,里面有个需求,需要在浏览器中在线浏览word excel ppt pdf等文档. 最近又开始研究并记录下来 当时方案: 因为浏览器中阅读文档暂时只能通过pdf方式读取,所以就 ...
- Python:global、local与nonlocal变量
1 local和global变量 先来看一个最简单的Python程序例子: import numpy as np n = 2 def func(a): b = 1 return a + b print ...
- 热更学习笔记10~11----lua调用C#中的List和Dictionary、拓展类中的方法
[10]Lua脚本调用C#中的List和Dictionary 调用还是在上文中使用的C#脚本中Student类: lua脚本: print("------------访问使用C#脚本中的Li ...