在Go语言中,使用
net/http
包可以创建HTTP请求。以下是一些常见的请求参数设置方法:
设置请求方法和URL
:
req, err := http.NewRequest(“GET”, “http://example.com”, nil)
设置请求头
:
req.Header.Set(“Authorization”, “Bearer token”)
req.Header.Set(“Content-Type”, “application/json”)
添加查询参数
:
使用
URL
的
Query
方法:
u, _ := url.Parse(“http://example.com”)
values := u.Query()
values.Set(“key”, “value”)
u.RawQuery = values.Encode()
req.URL = u
或者直接在URL中添加:
req, err := http.NewRequest(“GET”, “http://example.com?key=value”, nil)
设置请求体
:
对于JSON:
body := `{“key”: “value”}`
req, err := http.NewRequest(“POST”, “http://example.com”, strings.NewReader(body))
req.Header.Set(“Content-Type”, “application/json”)
对于表单数据:
form := url.Values{}
form.Add(“key”, “value”)
req, err := http.NewRequest(“POST”, “http://example.com”, strings.NewReader(form.Encode()))
req.Header.Set(“Content-Type”, “application/x-www-form-urlencoded”)
发送请求
:
client := &http.Client{}
resp, err := client.Do(req)
处理响应
:
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
设置超时
:
client := &http.Client{
Timeout: time.Second * 10,
}
设置代理
:
proxyStr := “http://proxyserver:port”
proxyURL, err := url.Parse(proxyStr)
if err == nil {
client := &http.Client{
Proxy: http.ProxyURL(proxyURL),
}
resp, err := client.Do(req)
}
设置TLS配置
:
tlsConfig := &tls.Config{InsecureSkipVerify: true}
transport := &http.Transport{TLSClientConfig: tlsConfig}
client := &http.Client{Transport: transport}
这些是设置HTTP请求参数的一些基本方法。根据你的具体需求,可能需要调整请求头、请求体或其它参数。