post请求常用的几种方式,记录一下
func httpPost() { resp, err := http.Post("https://www.abcd123.top/api/v1/login", "application/x-www-form-urlencoded", strings.NewReader("username=test&password=ab123123")) if err != nil { fmt.Println(err) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle error } fmt.Println(string(body))}func httpPostForm() { resp, err := http.PostForm("https://www.denlery.top/api/v1/login", url.Values{"username": {"auto"}, "password": {"auto123123"}}) if err != nil { // handle error } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle error } fmt.Println(string(body))}func httpPostJson() { jsonStr :=[]byte(`{ "username": "auto", "password": "auto123123" }`) url:= "https://www.denlery.top/api/v1/login" req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr)) req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { // handle error } defer resp.Body.Close() statuscode := resp.StatusCode hea := resp.Header body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body)) fmt.Println(statuscode) fmt.Println(hea)}
补充:golang中发送post的json请求
看代码吧~
package mainimport ( "encoding/json" "log" "net/http")type test_struct struct { Test string}//func test(rw http.ResponseWriter, req *http.Request) {// req.ParseForm()// log.Println(req.Form)// //LOG: map[{"test": "that"}:[]]// var t test_struct// for key, _ := range req.Form {// log.Println(key)// //LOG: {"test": "that"}// err := json.Unmarshal([]byte(key), &t)// if err != nil {// log.Println(err.Error())// }// }// log.Println(t.Test)// //LOG: that//}func test(rw http.ResponseWriter, req *http.Request) { decoder := json.NewDecoder(req.Body) var t test_struct err := decoder.Decode(&t) if err != nil { panic(err) } log.Println(t.Test)}func main() { http.HandleFunc("/test", test) log.Fatal(http.ListenAndServe(":8082", nil))}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/mofiu/article/details/79925994