您的位置:首页技术文章

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

【字号: 日期:2023-10-27 13:05:50浏览:58作者:馨心
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_structerr := decoder.Decode(&t)if err != nil {panic(err)}log.Println(t.Test)}func main() {http.HandleFunc('/test', test)log.Fatal(http.ListenAndServe(':8082', nil))}

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

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

标签: Golang
相关文章: