go发送http请求

Get

发送get请求

不带参数

1
2
3
4
5
6
7
8
// 转发地址
Url := "在此填入你的url"
resp, err := http.Get(url)
// 解析响应数据
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
var resMap map[string]interface{}
err = json.Unmarshal(body, &resMap)

带参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 转发地址
Url := "在此填入你的url"
req, err := http.NewRequest("GET", url, nil)
if err != nil {
log.Println(err)
return
}
req.AddCookie(cookie)
resp, err := client.Do(req)
// 解析响应数据
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
var resMap map[string]interface{}
err = json.Unmarshal(body, &resMap)

Post

发送post请求

转发文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// 获取file文件,进行转发
file, header, err := c.Request.FormFile("file")
defer file.Close()

// 转发地址
Url := "在此填入你的url"
// 创建缓冲区
buffers := &bytes.Buffer{}
// 创建输入流
writer := multipart.NewWriter(buffers)
// 创建请求体中form-data的file参数
formFile, err := writer.CreateFormFile("file", header.Filename)
// 拷贝文件
io.Copy(formFile, file)
// 关闭输入流
writer.Close()
// 创建post请求
req, err := http.NewRequest("POST", Url, buffers)
// 设置请求头
req.Header.Set("Content-Type", writer.FormDataContentType())
// 创建http客户端
client := &http.Client{}
// 如果是https请求
//client = &http.Client{
// // 创建一个自定义的 Transport,并禁用证书验证
// Transport: &http.Transport{
// TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
// },
//}
// 执行http请求
resp, err := client.Do(req)
if err != nil {
fmt.Println("转发文件失败出错error............")
return
}
// 解析响应数据
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
var resMap map[string]interface{}
err = json.Unmarshal(body, &resMap)

转发请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// 转发地址
Url := "在此填入你的url"
// 创建请求体中的json参数
sendData := map[string]interface{}{
"type": 1,
"list": []map[string]interface{}{
{
"id": 10001,
"name": "testing",
},
},
"taskId": 10001,
"subjectId": 10001,
"status": true,
}
// map转json
marshal, err := json.Marshal(sendData)
// fmt.Println(string(marshal))
// 创建缓冲区
buffer := bytes.NewBuffer(marshal)
// 创建post请求
req, err := http.NewRequest("POST", Url, buffer)
// 设置请求头
req.Header.Set("Content-Type", "application/json")
// 创建http客户端
client := &http.Client{}
// 如果是https请求
//client = &http.Client{
// // 创建一个自定义的 Transport,并禁用证书验证
// Transport: &http.Transport{
// TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
// },
//}
// 执行http请求
resp, err = client.Do(req)
if err != nil {
fmt.Println("转发请求出错error............")
return
}
// 解析响应数据
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
var resMap map[string]interface{}
err = json.Unmarshal(body, &resMap)