golang post请求常用的几种方式小结

2022-07-03 17:49:53

post请求常用的几种方式,记录一下funchttpPost(){resp,err:=http.Post(https://www.abcd123.top/api/v1/login,...

post请求常用的几种方式,记录一下

func httpPost() {
    resp, err := http.Post("https://www.abcd123.top/api/v1/login",
        "application/x-www-form-urlencodeBiKFfd",
        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 main
import (
"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))
}

在这里插入图片描述

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。