Go语言学习: req 包
一个好用的 go 语言的 http client 包
安装
go get github.com/imroc/req/v3
快速上手
- 用的是默认的 HttpClient
- 在实际使用,建议显示的创建 client:
client := req.C().DevMode()
package main
import (
"github.com/imroc/req/v3"
)
func main() {
req.DevMode()
req.Get("https://httpbin.org/get")
}
get 请求
func main() {
client := req.C().DevMode()
client.R().Get("https://httpbin.org/get")
}
post 请求
func main() {
client := req.C().DevMode()
client.R().SetBody("hello world").Post("http://httpbin.org/post")
}
post 请求,并返回数据
package main
import (
"fmt"
"github.com/imroc/req/v3"
)
type ResponseBody struct {
Data string `json:"data"`
}
func main() {
var body ResponseBody
client := req.C()
resp, err := client.R().SetBody("hello world").SetResult(&body).Post("http://httpbin.org/post")
if err != nil {
panic(err)
}
if resp.IsSuccess() {
fmt.Printf("%+v\n", body.Data)
}
}
请求参数
SetQueryParam("p1", "v1")
func main() {
var body ResponseBody
client := req.C().EnableDumpAllWithoutResponse()
resp, err := client.R().SetQueryParam("p1", "v1").SetBody("hello world").SetResult(&body).Post("http://httpbin.org/post")
if err != nil {
panic(err)
}
if resp.IsSuccess() {
fmt.Printf("%+v\n", body.Data)
}
}
使用体验
- 返回数据有点奇怪
- API是 copy restry 的
- 文档没有,只有一个 bilibili 视频
- 优点:很好上手
- 结论: 个人感觉,实际是 copy from restry的,我会直接去学 resty
参考