简单的 HTTP 和 REST 客户端,受到 Ruby rest-client 的启发
文档
安装
bash
go get github.com/go-resty/resty/v2
示例
1、发起GET请求
go
package main
import (
"fmt"
"strconv"
"time"
"github.com/go-resty/resty/v2"
)
func main() {
client := resty.New()
resp, _ := client.R().
SetQueryParams(map[string]string{
"page_no": "1",
"limit": "20",
"sort": "name",
"order": "asc",
"random": strconv.FormatInt(time.Now().Unix(), 10),
}).
SetHeader("Accept", "application/json").
Get("https://httpbin.org/get")
fmt.Println(string(resp.Body()))
}
响应结果
json
{
"args": {
"limit": "20",
"order": "asc",
"page_no": "1",
"random": "1716429557",
"sort": "name"
},
"headers": {
"Accept": "application/json",
"Accept-Encoding": "gzip",
"Host": "httpbin.org",
"User-Agent": "go-resty/2.13.1 (https://github.com/go-resty/resty)",
"X-Amzn-Trace-Id": "Root=1-664ea2f6-429caf50119e71644d6e7fe9"
},
"origin": "127.0.0.1",
"url": "https://httpbin.org/get?limit=20&order=asc&page_no=1&random=1716429557&sort=name"
}
2、发送POST请求
go
package main
import (
"fmt"
"strconv"
"time"
"github.com/go-resty/resty/v2"
)
func main() {
client := resty.New()
resp, _ := client.R().
SetBody(map[string]string{
"page_no": "1",
"limit": "20",
"sort": "name",
"order": "asc",
"random": strconv.FormatInt(time.Now().Unix(), 10),
}).
Post("https://httpbin.org/post")
fmt.Println(string(resp.Body()))
}
响应结果
json
{
"args": {},
"data": "{\"limit\":\"20\",\"order\":\"asc\",\"page_no\":\"1\",\"random\":\"1716429749\",\"sort\":\"name\"}",
"files": {},
"form": {},
"headers": {
"Accept-Encoding": "gzip",
"Content-Length": "78",
"Content-Type": "application/json",
"Host": "httpbin.org",
"User-Agent": "go-resty/2.13.1 (https://github.com/go-resty/resty)",
"X-Amzn-Trace-Id": "Root=1-664ea3b6-7b08b8622b633c943a22c362"
},
"json": {
"limit": "20",
"order": "asc",
"page_no": "1",
"random": "1716429749",
"sort": "name"
},
"origin": "127.0.0.1",
"url": "https://httpbin.org/post"
}