你的位置: 性爱 > 高中 自拍偷拍 > www 91porn com Golang发起http申请:GET带参数、POST发送Form和JSON数据
热点资讯

www 91porn com Golang发起http申请:GET带参数、POST发送Form和JSON数据

发布日期:2024-09-19 17:19    点击次数:172

www 91porn com Golang发起http申请:GET带参数、POST发送Form和JSON数据

图片

著作有点长,提议保藏,动作职责中的手册,用到的时辰检察即可

文档

https://pkg.go.dev/net/httphttps://pkg.go.dev/net/url

@ 目次

1、发起GET申请

2、发起带参GET申请

3、POST申请提交Form表单www 91porn com

4、POST申请提交Json数据

5、摄取反应数据,json转为map

6、自界说申请头

1、发起GET申请

使用net/http 不错很容易发起get申请

package mainimport (    'fmt'    'io'    'net/http')func main() {    resp, _ := http.Get('https://httpbin.org/get')    defer resp.Body.Close()    body, _ := io.ReadAll(resp.Body)    fmt.Print(string(body))}

反应

{  'args': {},   'headers': {    'Accept-Encoding': 'gzip',     'Host': 'httpbin.org',     'User-Agent': 'Go-http-client/2.0',     'X-Amzn-Trace-Id': 'Root=1-664863e9-34028ecc4c56c08d6ac5d923'  },   'origin': '127.0.0.1',   'url': 'https://httpbin.org/get'}
2、发起带参GET申请

使用net/url将查询参数拼接到url上,再使用net/http发起http申请

package mainimport (    'fmt'    'io'    'net/http'    'net/url')func main() {    targetUrl := 'https://httpbin.org/get'    u, _ := url.ParseRequestURI(targetUrl)    // URL param    data := url.Values{}    data.Set('name', 'Tom')    data.Set('age', '18')    u.RawQuery = data.Encode() // URL encode    fmt.Println(u.String())    // https://httpbin.org/get?age=18&name=Tom    resp, _ := http.Get(u.String())    defer resp.Body.Close()    body, _ := io.ReadAll(resp.Body)    fmt.Println(string(body))}

反应

{  'args': {    'age': '18',     'name': 'Tom'  },   'headers': {    'Accept-Encoding': 'gzip',     'Host': 'httpbin.org',     'User-Agent': 'Go-http-client/2.0',     'X-Amzn-Trace-Id': 'Root=1-6648641d-0567278a093ee36078e9da27'  },   'origin': '127.0.0.1',   'url': 'https://httpbin.org/get?age=18&name=Tom'}
3、POST申请提交Form表单package mainimport (    'fmt'    'io'    'net/http'    'net/url')func main() {    targetUrl := 'https://httpbin.org/post'    data := url.Values{}    data.Set('name', 'Tom')    data.Set('age', '18')    resp, _ := http.PostForm(targetUrl, data)    defer resp.Body.Close()    body, _ := io.ReadAll(resp.Body)    fmt.Println(string(body))}

反应

{  'args': {},   'data': '',   'files': {},   'form': {    'age': '18',     'name': 'Tom'  },   'headers': {    'Accept-Encoding': 'gzip',     'Content-Length': '15',     'Content-Type': 'application/x-www-form-urlencoded',     'Host': 'httpbin.org',     'User-Agent': 'Go-http-client/2.0',     'X-Amzn-Trace-Id': 'Root=1-66486446-48a3d6085e91c39208746892'  },   'json': null,   'origin': '127.0.0.1',   'url': 'https://httpbin.org/post'}
4、POST申请提交Json数据package mainimport (    'bytes'    'encoding/json'    'fmt'    'io'    'net/http')func main() {    targetUrl := 'https://httpbin.org/post'    data := make(map[string]interface{})    data['name'] = 'Tom'    data['age'] = 12    respdata, _ := json.Marshal(data)    resp, _ := http.Post(targetUrl, 'application/json', bytes.NewReader(respdata))    defer resp.Body.Close()    body, _ := io.ReadAll(resp.Body)    fmt.Println(string(body))}

反应

{  'args': {},   'data': '{\'age\':12,\'name\':\'Tom\'}',   'files': {},   'form': {},   'headers': {    'Accept-Encoding': 'gzip',     'Content-Length': '23',     'Content-Type': 'application/json',     'Host': 'httpbin.org',     'User-Agent': 'Go-http-client/2.0',     'X-Amzn-Trace-Id': 'Root=1-6648646b-1057cc454774771009b19914'  },   'json': {    'age': 12,     'name': 'Tom'  },   'origin': '127.0.0.1',   'url': 'https://httpbin.org/post'}
5、摄取反应数据,json转为mappackage mainimport (    'encoding/json'    'fmt'    'io'    'net/http')// 界说反应数据结构type Result struct {    Args    string            `json:'args'`    Headers map[string]string `json:'headers'`    Origin  string            `json:'origin'`    Url     string            `json:'url'`}func main() {    targetUrl := 'https://httpbin.org/get'    resp, _ := http.Get(targetUrl)    defer resp.Body.Close()    body, _ := io.ReadAll(resp.Body)    fmt.Println(string(body))    // 摄取复返的数据    var ret Result    json.Unmarshal(body, &ret)    fmt.Printf('%#v\n', ret)}

反应数据json门径

{  'args': {},   'headers': {    'Accept-Encoding': 'gzip',     'Host': 'httpbin.org',     'User-Agent': 'Go-http-client/2.0',     'X-Amzn-Trace-Id': 'Root=1-664854df-48710d487d9f9d97398586ac'  },   'origin': '127.0.0.1',   'url': 'https://httpbin.org/get'}

反应数据golang数据

main.Result{    Args:'',     Headers:map[string]string{        'Accept-Encoding':'gzip',         'Host':'httpbin.org',         'User-Agent':'Go-http-client/2.0', 'X-Amzn-Trace-Id':'Root=1-664854df-48710d487d9f9d97398586ac'    },     Origin:'127.0.0.1',     Url:'https://httpbin.org/get'}6、自界说申请头

通过构建 Request 对象,成就申请头属性

西西裸体艺术
package mainimport ( 'fmt' 'io' 'net/http')func main() { targetUrl := 'http://httpbin.org/get' client := &http.Client{} req, _ := http.NewRequest('GET', targetUrl, nil) req.Header.Add('X-Token', '123456') req.Header.Add('X-UID', '666') resp, _ := client.Do(req) defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body))}

反应

{  'args': {},   'headers': {    'Accept-Encoding': 'gzip',     'Host': 'httpbin.org',     'User-Agent': 'Go-http-client/1.1',     'X-Amzn-Trace-Id': 'Root=1-664863a4-044bd06c4e4887d73790591a',     'X-Token': '123456',     'X-Uid': '666'  },   'origin': '127.0.0.1'  'url': 'http://httpbin.org/get'}

本站仅提供存储工作,悉数实质均由用户发布,如发现存害或侵权实质,请点击举报。

----------------------------------