
Golang
cyberspecter
我只是一张白纸
展开
-
golang 使用 resty,重试条件无效的问题
文章目录0x01 问题描述0x02 代码片断0x03 跟踪调试0x01 问题描述在go项目中,使用 resty 。在http请求中,添加重试条件,在满足条件时才可以重试。使用中,后端所连的服务突然挂线,导致端口不存在,进而引发 connect refused 的错误。而又由于设置超时时间为 30s,导致在服务器响应前,请求方已经断开而报超时的问题。0x02 代码片断var client = resty.New()func init() { client.SetRetryCount(5) cl原创 2020-08-28 16:17:52 · 3254 阅读 · 0 评论 -
golang使用 resty 重试bug
这里写自定义目录标题问题描述欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入问题描述在项目中使用 resty 时,在满足特定情况下,不让它自动重试,可实际情况却事与愿违欢迎使用Markdo原创 2020-08-28 16:03:00 · 576 阅读 · 0 评论 -
gin框架出现遍历目录的bug
文章目录一、 问题描述二、代码复现一、 问题描述在使用 gin 框架的时候,出现了线上漏洞,即可以通过 url 遍历目录。添加了对权限的控制。在后续的项目中,也需要用到 ctx.File(filename string) 函数。开始时想要使用 StripPrefix 但由于其他原因放弃了。二、代码复现package mainimport ( "fmt" "github.com/gi...原创 2019-09-09 14:35:03 · 1381 阅读 · 0 评论 -
goproxy.cn如何设置
以往我们使用go get 时如果访问的是 golang.org之类的资源,总是会出现错误,是因为我们没有权限访问这些网站。现在七牛资助一个项目 https://goproxy.cn我们只需要在我们的环境变量设置一下就可以了。export GOPROXY=https://goproxy.cn...原创 2019-09-08 16:40:53 · 4659 阅读 · 2 评论 -
gin框架中间件的使用之Next()和Abort()
文章目录一、 `Next()` 和 `Abort()` 的含义二、示例分析一、 Next() 和 Abort() 的含义Next() 的含义语法:func (c *Context) Next()英文原文Next should be used only inside middleware. It executes the pending handlers in the chain ...原创 2019-09-07 17:24:33 · 14683 阅读 · 6 评论 -
golang text/template笔记
文章目录1. 使用 map 的简单示例2. 循环2.1 `{{range $i, $e := pipeline }}2.2 {{range .pipeline}}引用外部变量1. 使用 map 的简单示例package mainimport ( "fmt" "text/template" "bytes")func main() { tplStr := `my name is ...原创 2019-05-28 18:33:05 · 694 阅读 · 0 评论 -
go WaitGroup
文章目录官网说明示例示例一示例二示例三 值传递 and 指针传递官网说明A WaitGroup waits for a collection of goroutines to finish. The main goroutine calls Add to set the number of goroutines to wait for. Then each of the goroutines...原创 2019-04-03 10:58:09 · 357 阅读 · 0 评论 -
[译]5个switch语句模式
原文基本开关默认switch 语句运行第一种情况属于条件表达式case 从上到下被评估,在case成功时停止如果没有匹配任何 case 并且有一个默认的 case ,它的语句被执行switch time.Now().Weekday(){case time.Saturday: fmt.Println("Today is Saturday."))case time.Sunda...翻译 2019-04-02 17:01:55 · 286 阅读 · 0 评论 -
golang 中,使用 sqlx 包如何使用通配符查询 -- like
在开发中需要使用到 like 语句,代码如下:sqlx.GET(&studentName,sqlx.Rebind("SELECT * FROM student WHERE name LIKE '%?'"),name)但在运行的时候,出现数据语句错误!在 stackoverflow给出了答案,此处作记录查找解决方法一:sqlx.GET(&student, sqlx.R...翻译 2018-12-10 10:33:46 · 3380 阅读 · 0 评论 -
golang中使用json转换结构体
两个结构体,其中一个结构体可以包含另外一个结构体,使用 json 可以使结构体字段比较多的结构体可以赋值给字体少的。package mainimport ( "encoding/json" "fmt")type KeyBasic struct { UserName string `json:"username"` Algorithm string `json:"algo"`...原创 2018-11-06 14:44:13 · 3152 阅读 · 0 评论 -
Golang包管理工具 - govendor
目录一、 安装govendor二、 命令使用三、 子命令四、状态五、包说明符六、包和状态七、忽略构建标记并排除包八、govendor 常见问题一、 安装govendorgo get -u github.com/kardianos/govendor使用 govendor add/update 从$GOPATH 目录拷贝已经存在的依赖如果忽略 vendor/*/,使用 govendor s...翻译 2018-10-24 17:29:36 · 1730 阅读 · 1 评论 -
golang之结构体标签
我们在解析结构体和json时,总会出现空值,特别是在结构体用作双方定义的数据结构时,有时候并空值其实并不是我们需要的字段package mainimport ( "fmt" "encoding/json")type KeyUsage struct { UserName string `json:"username"` Algorithm string `json:&quo原创 2018-10-29 11:37:04 · 3784 阅读 · 0 评论 -
Vault 使用PKI后端作为CA
Vault使用 PKI 后端作为CA下载并运行 Vault:创建PKI后端生成根证书为CA配置CRLs:创建角色发出crt和私钥参考:我将展示如何在pki框架内运行自己的CA,并能够生成私钥和签名证书。我们将使用Vault进行此操作 ,因为这是完成它的最快方法。下载并运行 Vault:请确保从 https://www.vaultproject.io/downloads.html获取它,或者您...翻译 2018-10-23 16:46:19 · 878 阅读 · 0 评论 -
Golang http短连接
目录客户端关闭Http连接服务器端设置短连接参考:客户端关闭Http连接在客户端关闭 http 连接直接在请求后关闭连接func main() { req, err := http.NewRequest("GET", "http://localhost",nil ) if err != nil { log.Errorf("") } req..转载 2018-10-23 16:02:17 · 4268 阅读 · 0 评论 -
Golang命令行参数 -- flag
flag 包实现命令行标志解析用法:使用 flag.String(), Bool(), Int() 等等定义标志这声明一个整型标志,-flagname, 存储在指针 ip中,类型为 *intimport "flag"var ip = flag.Int("flagname", 1234, "help message for flagname")如果你喜欢,你可以绑定标志到一个变量上,使...翻译 2018-10-25 11:18:49 · 7272 阅读 · 0 评论