golang:模拟http post请求

Posted ecake

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang:模拟http post请求相关的知识,希望对你有一定的参考价值。

  1,发送http post请求(客户端)

func httppost()  {
	data :=`{"type":"10","msg":"hello."}`
	request, _ := http.NewRequest("POST", "http://0.0.0.0:8090/msg", strings.NewReader(data))
	//post数据并接收http响应
	resp,err :=http.DefaultClient.Do(request)
	if err!=nil{
		fmt.Printf("post data error:%v\\n",err)
	}else {
		fmt.Println("post a data successful.")
		respBody,_ :=ioutil.ReadAll(resp.Body)
		fmt.Printf("response data:%v\\n",string(respBody))
	}
}

  2,接收方法(服务端)

package main

import (
	"net/http"
	"io/ioutil"
	"fmt"
)

func main()  {
	//设置路由和接收HTTP请求的方法
	mux :=http.NewServeMux()
	mux.HandleFunc("/msg",recvHandle)
	//设置http服务
	server :=&http.Server{
		Addr:    "0.0.0.0:8090",
		Handler: mux,
	}
	//启动监听
	server.ListenAndServe()
}
func recvHandle(w http.ResponseWriter, r *http.Request)  {
	body,_ :=ioutil.ReadAll(r.Body)
	fmt.Println(string(body))
	fmt.Fprintf(w,"3q your msg.")
}

  3,执行结果

 

 

以上是关于golang:模拟http post请求的主要内容,如果未能解决你的问题,请参考以下文章

代码片段 - Golang 实现简单的 Web 服务器

golang使用http client发起get和post请求示例

golang实现http服务端接收post请求

golang使用http client发起get和post请求示例

从零开发区块链应用--golang网络请求

在golang中进行集成测试时如何模拟外部http请求api