gout v0.2.5 版本更新,Go 更新的 http RESTful 客户端和 benchmark lib
项目
https://gitee.com/guonaihong/gout
https://github.com/guonaihong/gout
feature
- 支持设置 GET/PUT/DELETE/PATH/HEAD/OPTIONS
- 支持设置请求 http header(可传 struct,map,array,slice 等类型)
- 支持设置 URL query(可传 struct,map,array,slice,string 等类型)
- 支持设置 json 编码到请求 body 里面(可传struct, map, string, []byte 等类型)
- 支持设置 xml 编码到请求 body 里面(可传struct, string, []byte 等类型)
- 支持设置 yaml 编码到请求 body 里面(可传struct, map, string, []byte 等类型)
- 支持设置 protobuf 编码到请求 body里面(可传struct)
- 支持设置 form-data(可传 struct, map, array, slice 等类型)
- 支持设置 x-www-form-urlencoded(可传 struct,map,array,slice 等类型)
- 支持设置 io.Reader,uint/uint8/uint16...int/int8...string...[]byte...float32,float64 至请求 body 里面
- 支持解析响应body里面的json,xml,yaml至结构体里(BindJSON/BindXML/BindYAML)
- 支持解析响应body的内容至io.Writer, uint/uint8...int/int8...string...[]byte...float32,float64
- 支持解析响应header至结构体里
- 支持接口性能benchmark,可控制压测一定次数还是时间,可控制压测频率
- 支持retry-backoff,可以指定重试条件
- 支持发送裸http数据包
- 支持导出curl命令
- 传入自定义*http.Client
- 支持请求中间件(https://github.com/antlabs/gout-middleware)
- 支持设置chunked数据格式发送
- 等等更多
更新更新内容
1. 通过静态分析工具, 扫描代码, 减少报警
2.
本次功能优化在使用query string时,可以使用更丰富的数据结构。
package main import "github.com/guonaihong/gout" type query struct { A []string `query:"a"` } func main() { gout.GET(":8080/").SetQuery(query{A: []string{"1", "2", "3"}}).Do() }
客户端请求的包如下:
GET /?a=1&a=2&a=3 HTTP/1.1
Host: 127.0.0.1:8080
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip