HTTP 客户端
大约 1 分钟componenthttp
httpcli
是封装 http 客户端的组件。
请求示例1
带有参数、头和正文的 Get
, Delete
, Post
, Put
, Patch
请求示例代码:
import "github.com/go-dev-frame/sponge/pkg/httpcli"
type User struct{
Name string
Email string
}
url := "http://localhost:8080/user"
params := httpcli.KV{"id":123} // url query 参数
headers := map[string]string{"Authorization": "Bearer token"}
body := &User{"foo", "foo@bar.com"}
result := &httpcli.StdResult{} // 可以定义其它结构来接收数据
var err error
// Get
err = httpcli.Get(result, url)
err = httpcli.Get(result, url, httpcli.WithParams(params))
err = httpcli.Get(result, url, httpcli.WithParams(params), httpcli.WithHeaders(headers))
// Delete
err = httpcli.Delete(result, url)
err = httpcli.Delete(result, httpcli.WithParams(params))
err = httpcli.Delete(result, httpcli.WithParams(params), httpcli.WithHeaders(headers))
// Post
err = httpcli.Post(result, url, body)
err = httpcli.Post(result, url, body, httpcli.WithParams(params))
err = httpcli.Post(result, url, body, httpcli.WithParams(params), httpcli.WithHeaders(headers))
// Put
err = httpcli.Put(result, url, body)
// Patch
err = httpcli.Patch(result, url, body)
请求示例2
可以使用httpcli.New()
方法创建客户端,然后调用客户端的相应方法。
Get
, Delete
请求示例代码:
import "github.com/go-dev-frame/sponge/pkg/httpcli"
url := "http://localhost:8080/user"
headers := map[string]string{"Authorization": "Bearer token"}
params := httpcli.KV{"id": 123}
cli := httpcli.New().SetURL(url).SetHeaders(headers).SetParams(params)
// Get
resp, err := cli.Get()
// Delete
// resp, err := cli.Delete()
defer resp.Body.Close()
result := &httpcli.StdResult{} // 可以定义其它结构来接收数据
err = resp.BindJSON(result)
Post
, Put
, Patch
请求示例代码:
import "github.com/go-dev-frame/sponge/pkg/httpcli"
type User struct{
Name string
Email string
}
body := &User{"foo", "foo@bar.com"}
url := "http://localhost:8080/user"
headers := map[string]string{"Authorization": "Bearer token"}
cli := httpcli.New().SetURL(url).SetHeaders(headers).SetBody(body)
// Post
resp, err := cli.Post()
// Put
// resp, err := cli.Put()
// Patch
// resp, err := cli.Patch()
defer resp.Body.Close()
result := &httpcli.StdResult{} // 可以定义其它结构来接收数据
err = resp.BindJSON(result)