go实现api请求(post方式)

goland创建moudle,https://goproxy.cn

 

go代码:

package main

import (
	"encoding/json"
	"fmt"
	"github.com/gorilla/mux"
	"io/ioutil"
	"log"
	"net/http"
)

/*type rule struct {
	ruleName string `json:"rule_name"`
	ruleType string `json:"rule_type"`
	ruleStatus string `json:"rule_status"`
	pageSize int `json:"page_size"`
	page int `json:"page"`
}*/

func requestRes(writer http.ResponseWriter, request *http.Request)  {
	//vars := mux.Vars(request)
	//获取请求 request 的路由变量,返回 map [string]string
	//var vars map[string]string = mux.Vars(request)
	var req map[string]interface{}

	body, _ := ioutil.ReadAll(request.Body)

	//解码函数
	//解析json编码的数据并将结果存入req指向的值
	json.Unmarshal(body, &req)
	fmt.Println(req)


	//var name string = req["name"].(string)
	ruleName := req["ruleName"].(string)
	fmt.Println(ruleName)

	ruleType := req["ruleType"].(string)
	fmt.Println(ruleType)

	ruleStatus := req["ruleStatus"].(string)
	fmt.Println(ruleStatus)

	pageSize := req["pageSize"].(float64)
	fmt.Println(pageSize)

	page := req["page"].(float64)
	fmt.Println(page)


	//响应
	var res = map[string]string{"code": "1", "message": "ok", "body":"hello,word!"}
	fmt.Println(res)

	//编码函数
	response, _ := json.Marshal(res)

	writer.Header().Set("Content-Type", "application/json")
	writer.WriteHeader(http.StatusOK)
	writer.Write(response)


}

func main() {

	//http://localhost:9090/v1/rule/get_rule
	//方式一:http自带的
	//HandleFunc 的第一个参数指的是请求路径,第二个参数是一个函数类型,表示这个请求需要处理的事情。
	//http.HandleFunc("/v1/rule/get_rule", requestRes)

	//创建监听端口
	/*err := http.ListenAndServe("127.0.0.1:9090", nil)
	if err != nil {
		log.Fatal("ListenAndServe:	", err)*/

	//方式二:使用mux框架
	r := mux.NewRouter()
	r.HandleFunc("/v1/rule/get_rule", requestRes).Methods("POST")

	log.Fatal(http.ListenAndServe(":9090", r))


}

postman将前端数据提交到后端,后端相应传数据至前端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值