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

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 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))

}

在这里插入图片描述

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

以上是 golang post请求常用的几种方式小结 的全部内容, 来源链接: utcz.com/p/236029.html

回到顶部