• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    golang post请求常用的几种方式小结

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

    func httpPost() {
        resp, err := http.Post("https://www.abcd123.top/api/v1/login",
            "application/x-www-form-urlencoded",
            strings.NewReader("username=testpassword=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 xorm中使用postgresql的json,array类型的操作
    • golang使用http client发起get和post请求示例
    • go Http Post 发送文件流案例
    • GO接收GET/POST参数及发送GET/POST请求的实例详解
    上一篇:go实现反转链表
    下一篇:golang实现mysql数据库事务的提交与回滚
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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