Go_发起网络请求模版(基于官方net库)
Go HTTP请求模板封装
1、导入包
package main |
1.1、GetRequest 发送GET请求
// GetRequest 发送GET请求 |
参数说明:
url: 请求的目标地址(不包含查询参数),例如"https://api.example.com/data"params:查询参数的键值对映射,例如:map[string]string{
"page": "1",
"limit": "20",
}将生成
?page=1&limit=20的查询字符串
1.2、PostJsonRequest 发送JSON格式的POST请求
// PostJsonRequest 发送JSON格式的POST请求 |
参数说明:
url: 请求的目标地址,例如"https://api.example.com/users"data:任意可被JSON序列化的Go数据结构,例如:// 使用结构体
struct {
Name string `json:"name"`
Email string `json:"email"`
}{
Name: "Alice",
Email: "alice@example.com",
}
// 或使用map
map[string]interface{}{
"name": "Alice",
"email": "alice@example.com",
}
1.3、PostFormUrlEncodedRequest 发送x-www-form-urlencoded格式的POST请求
// PostFormUrlEncodedRequest 发送x-www-form-urlencoded格式的POST请求 |
参数说明:
url: 请求的目标地址,例如"https://api.example.com/login"formData: 表单数据的键值对映射,例如:map[string]string{
"username": "admin",
"password": "myp@ssw0rd",
}
1.4、PostFormDataRequest 发送multipart/form-data格式的POST请求(支持文件和文本混合)
// PostFormDataRequest 发送multipart/form-data格式的POST请求(支持文件和文本混合) |
参数说明:
url: 请求的目标地址,例如"https://api.example.com/upload"formData: 文本字段的键值对映射,例如:map[string]string{
"description": "用户头像",
"category": "profile",
}fileField: 服务器用于接收文件的字段名称(表单域名称),例如"avatar"filePath: 要上传的文件在本地系统的完整路径,例如"/tmp/photo.jpg"
特殊说明:
filePath参数为空字符串""时,表示不上传文件,只发送文本表单数据
2、请求示例:
// ============================ |
通用返回说明
所有函数均返回两个值:
[]byte: 原始响应体内容,需要调用方自行解析(如使用json.Unmarshal())error: 错误对象,请求成功时返回nil,失败时包含错误详情
// 典型使用示例 |