gin 获取请求参数

1、get请求

query1 := c.Query("test")
query2 := c.DefaultQuery("test","")//带默认值

2、post请求(表单)

test:= c.PostForm("test")
test:= c.DefaultPostForm("test", " ") // 带默认值

3、动态获取参数(表单)

req:= make(map[string]interface{})
for k, v := range c.Request.PostForm {
	params[k] = v[0]
}
fmt.Println("req",req)


jsonReq, _ := json.Marshal(req) //map转string
fmt.Println("req",jsonReq)

4、post请求(json)

parms, _ := c.GetRawData()// 定义map或结构体
var req map[string]interface{}
_ = json.Unmarshal(parms, &req)// 反序列化
fmt.Println("req",req)


jsonReq, _ := json.Marshal(req) //map转string
fmt.Println("req",jsonReq)

5、绑定结构体

type User struct {
	Name   string `from:"name" json:"name"`
	Pwd    string `from:"pwd" json:"pwd"`
}


func main(){
    req := User{}
	c.BindJSON(&req)
    fmt.Println(req,req.Name)

}

6、动态获取参数(json)

//第一种方式
var parms []byte
if c.Request.Body != nil {
	parms, _ = ioutil.ReadAll(c.Request.Body)
	c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(parms))
}
fmt.Println("req",string(parms))

//第二种方式
buf := make([]byte, 1024)
n, _ := c.Request.Body.Read(buf)
fmt.Println("parms", string(buf[0:n]))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值