GO接收GET/POST参数以及发送GET/POST请求
go作为21世纪的新C语言,还是应该学习一下的,本文主要介绍net/http包相关用法
GO发送HTTP请求
发送GET请求
- 直接放代码
var client = http.Client{
Timeout: 10 * time.Second,
}
func HttpGetRequest(url string, result interface{
}) error {
resp, err := client.Get(url)
if err != nil {
return err
}
defer resp.Body.Close()
decoder := json.NewDecoder(resp.Body)
err = decoder.Decode(&result)
return err
}
- get其实可以直接通过自带的http.Get()就可以发送请求,但还是建议用client方法吧
- Get方式简介:数据通过URL发送,因此无
安全性
,且传输数据受URL
最大长度影响
发送POST请求
- post分为postfrom和postjson
var client = http.Client{
Timeout: 10 * time.Second,
}
func HttpPostJson(url string, data interface{
}, result interface{
}, header map[string]string) error {
buf := bytes.NewBuffer(nil)
encoder := json.NewEncoder(buf)
if err := encoder.Encode(data); err != nil {
return err
}
request, err := http.NewRequest(http.MethodPost, url, buf)
if err != nil {
return err
}
request.Header.Add("Content-Type", "application/json")
if header != nil {
for k, v := range header {
request.Header.Add(k, v)
}
}
response, err := client.Do(request)
if err != nil {
return err
}
defer response.Body.Close