基于 net/http 包的请求工具包。
功能 : 发起 GET 请求
参数 :
1. uri string // 请求地址
2. data map[string]string url 数据
3. headers map[string]string 请求 header 数据
示例 :
package main
import (
"encoding/json"
"fmt"
"net/http"
"strconv"
"github.com/cnlesscode/gotool/request"
)
func main() {
// 测试请求路由
http.HandleFunc("/test", func(w http.ResponseWriter, r *http.Request) {
res, err := request.GET(
"http://localhost:9001/",
map[string]string{
"name": "gotool",
"age": strconv.Itoa(18),
},
map[string]string{
"token": "123456",
})
if err == nil {
fmt.Printf("res: %v\n", res)
}
})
// 被请求路由
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
// 获取 GET 参数
queryData := r.URL.Query()
name := queryData.Get("name")
age := queryData.Get("age")
// 获取 header 数据
tk := r.Header.Get("token")
fmt.Printf("tk: %v\n", tk)
data := map[string]string{
"method": r.Method,
"name": name,
"age": age,
}
dataByte, err := json.Marshal(data)
if err == nil {
w.Write(dataByte)
}
})
// 启动服务
err := http.ListenAndServe(":9001", nil)
if err != nil {
fmt.Printf("err: %v\n", err)
}
}
功能 : 发起 POST 请求
参数 :
1. uri string // 请求地址
2. data map[string]string POST 数据
3. headers map[string]string 请求 header 数据
示例 :
package main
import (
"encoding/json"
"fmt"
"net/http"
"strconv"
"github.com/cnlesscode/gotool/request"
)
func main() {
// 测试请求路由
http.HandleFunc("/test", func(w http.ResponseWriter, r *http.Request) {
res, err := request.POST(
"http://localhost:9001/",
map[string]string{
"name": "gotool",
"age": strconv.Itoa(18),
},
map[string]string{
"token": "123456",
})
if err == nil {
fmt.Printf("res: %v\n", res)
}
})
// 被请求路由
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
// 获取 POST 数据
pd := make(map[string]string)
r.ParseForm()
for k, v := range r.PostForm {
if len(v) < 1 {
pd[k] = ""
}
pd[k] = v[0]
}
data := map[string]string{
"method": r.Method,
"name": pd["name"],
"age": pd["age"],
}
dataByte, err := json.Marshal(data)
if err == nil {
w.Write(dataByte)
}
})
// 启动服务
err := http.ListenAndServe(":9001", nil)
if err != nil {
fmt.Printf("err: %v\n", err)
}
}
功能 : 发起 PUT 请求
参数 :
1. uri string // 请求地址
2. data map[string]string POST 数据
3. headers map[string]string 请求 header 数据
示例 :
与 post 演示代码基本一致,只需要将 request.POST 改成 request.PUT 即可。
功能 : 发起 DELETE 请求
参数 :
1. uri string // 请求地址
2. data map[string]string url 数据
3. headers map[string]string 请求 header 数据
示例 :
与 get 演示代码基本一致,只需要将 request.GET 改成 request.DELETE 即可。