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

 更新时间:2021年04月27日 11:15:37   作者:誠寜  
这篇文章主要介绍了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))
}

在这里插入图片描述

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

相关文章

  • Go 语言 IDE 中的 VSCode 配置使用教程

    Go 语言 IDE 中的 VSCode 配置使用教程

    Gogland 是 JetBrains 公司推出的Go语言集成开发环境。这篇文章主要介绍了Go 语言 IDE 中的 VSCode 配置使用教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Go语言学习之反射的用法详解

    Go语言学习之反射的用法详解

    反射指的是运行时动态的获取变量的相关信息。本文将为大家详细介绍Go语言中反射的用法,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-04-04
  • Go调度器学习之goroutine调度详解

    Go调度器学习之goroutine调度详解

    这篇文章主要为大家详细介绍了Go调度器中goroutine调度的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-03-03
  • Go读取文件与写入文件的三种方法操作指南

    Go读取文件与写入文件的三种方法操作指南

    在 Go 语言中也经常会遇到操作文件的需求,下面这篇文章主要给大家介绍了关于Go读取文件与写入文件的三种方法操作,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • Go语言defer与return执行的先后顺序详解

    Go语言defer与return执行的先后顺序详解

    这篇文章主要为大家介绍了Go语言defer与return执行的先后顺序详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Golang标准库os/exec执行外部命令并获取其输出包代码示例

    Golang标准库os/exec执行外部命令并获取其输出包代码示例

    这篇文章主要为大家介绍了Golang标准库os/exec执行外部命令并获取其输出包代码示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • golang使用 gomodule 在公共测试环境管理go的依赖的实例详解

    golang使用 gomodule 在公共测试环境管理go的依赖的实例详解

    这篇文章主要介绍了golang使用 gomodule 在公共测试环境管理go的依赖,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Go语言中Select语句用法实例

    Go语言中Select语句用法实例

    这篇文章主要介绍了Go语言中Select语句用法,实例分析了select语句的原理与使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • Golang如何快速构建一个CLI小工具详解

    Golang如何快速构建一个CLI小工具详解

    这篇文章主要为大家介绍了Golang如何快速构建一个CLI小工具详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Go语言开发必知的一个内存模型细节

    Go语言开发必知的一个内存模型细节

    这篇文章主要为大家介绍了Go语言开发必知的一个内存模型细节详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07

最新评论