本文介绍: application/x-www-form-urlencoded url编码方式提交。发送请求的步骤:1. 创建客户端 2. 发送请求 3. 接受响应。multipart/form-data 表单方式提交,上传文件。application/json json数据格式提交。的请求体就是字节流。所以制定编码方式-》用。接下来就可以往body里放字节流数据。都可以根据这个模版魔改。
Curl- go的自带包 net/http实现
case
http
包中的Request
发送请求的步骤:1. 创建客户端 2. 发送请求 3. 接受响应
client := &http.Client{}
req, _ := http.NewRequest("POST", url, nil)
// request中有很多参数可以设置
//设置头部
req.Header.set(key,value)
//接受响应
resp,_ := client.Do(req)
http.NewRequest
// NewRequest wraps NewRequestWithContext using context.Background.
func NewRequest(method, url string, body io.Reader) (*Request, error) {
return NewRequestWithContext(context.Background(), method, url, body)
}
- method
- get,post,delete,put
- url
- body :可以是多种形式的数据包含在请求体中
我们可以看出这个 : body
是一个io.Reader
所以Request
的请求体就是字节流。所以制定编码方式-》用header
指定
multipart/form-data 表单方式提交,上传文件
application/x-www-form-urlencoded url编码方式提交
application/json json数据格式提交
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
接下来就可以往body里放字节流数据
import uri "net/url"
fromData := uri.Values{}
for k, v := range data {
fromData.Set(k, v)
}
req, _ := http.NewRequest("POST", url, strings.NewReader(fromData.Encode()))
Post Get Delete Put
都可以根据这个模版魔改
client := &http.Client{}
req, _ := http.NewRequest("POST", url, nil)
// request中有很多参数可以设置
//设置头部
req.Header.set(key,value)
//接受响应
resp,_ := client.Do(req)
例如:from-data
的post:
func PostWithFromData(url string, headers map[string]string, data map[string]string) []byte {
jar, _ := cookiejar.New(nil) // 客户端带cookie,这里没用到
client := &http.Client{
Jar: jar,
}
fromData := uri.Values{}
for k, v := range data {
fromData.Set(k, v)
}
req, _ := http.NewRequest("POST", url, strings.NewReader(fromData.Encode()))
for key, value := range headers {
req.Header.Set(key, value)
}
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
resp, err := client.Do(req)
if err != nil {
fmt.Println("发送请求失败:", err)
return nil
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
return body
}
原文地址:https://blog.csdn.net/qq_40893490/article/details/135706396
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_58802.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。