首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gin框架之参数获取

gin框架之参数获取

作者头像
大话swift
发布2020-03-12 18:23:34
1.4K0
发布2020-03-12 18:23:34
举报
文章被收录于专栏:大话swift大话swift大话swift

1、get请求获得query中内容

package main
import (  "fmt"  "github.com/gin-gonic/gin")
func main() {  router := gin.Default()  router.GET("/get/query", func(c *gin.Context) {    //a有值就获得,没有不处理    if a, ok := c.GetQuery("a"); ok {      fmt.Printf("a的值%v", a)    }    //取得b的值    b := c.Query("b")    fmt.Println()    fmt.Printf("b的值%v", b)    //d如果有值就取得d的值,没有就给默认值    d := c.DefaultQuery("d", "d")    fmt.Println()    fmt.Printf("d的值%v", d)    fmt.Println()    e := c.QueryArray("e")    fmt.Printf("e的值%v", e)    fmt.Println()    f := c.QueryMap("f")    fmt.Printf("f的值%v", f)    fmt.Println()
  })  router.Run(":8080")}
控制台输出a的值1b的值2d的值3

我们访问http://127.0.0.1:8080/get/query?b=2

控制台输出,d取得了默认值b的值2d的值d

我们访问,其中

http://127.0.0.1:8080/get/query?b=2&e=1&e=2&f[a]=1&f[b]=2

b的值2d的值de的值[1 2]f的值map[a:1 b:2]

2、post获得数据

package main
import (  "fmt"  "github.com/gin-gonic/gin")
func main() {  router := gin.Default()  router.GET("/get/query", func(c *gin.Context) {    //a有值就获得,没有不处理    if a, ok := c.GetQuery("a"); ok {      fmt.Printf("a的值%v", a)    }    //取得b的值    b := c.Query("b")    fmt.Println()    fmt.Printf("b的值%v", b)    //d如果有值就取得d的值,没有就给默认值    d := c.DefaultQuery("d", "d")    fmt.Println()    fmt.Printf("d的值%v", d)    fmt.Println()    e := c.QueryArray("e")    fmt.Printf("e的值%v", e)    fmt.Println()    f := c.QueryMap("f")    fmt.Printf("f的值%v", f)    fmt.Println()
  })
  router.POST("/post/query", func(c *gin.Context) {    a := c.PostForm("a")    fmt.Printf("a的值%v", a)    fmt.Println()    b := c.DefaultPostForm("b", "b")    fmt.Printf("b的值%v", b)    fmt.Println()
    d := c.PostFormArray("d")    fmt.Printf("d的值%v", d)    fmt.Println()    e := c.PostFormMap("e")    fmt.Printf("e的值%v", e)    fmt.Println()  })  router.Run(":8080")}

postman示例

curl模拟请求

curl --location --request POST 'http://127.0.0.1:8080/post/query' \--header 'Content-Type: multipart/form-data; boundary=--------------------------491193908873322781498272' \--form 'a=1' \--form 'b=' \--form 'd=1' \--form 'd=2' \--form 'e[a]=1' \--form 'e[b]=2'

控制台输出

a的值1b的值d的值[1 2]e的值map[a:1 b:2]

3、通过uri获得参数

package main
import (  "fmt"  "github.com/gin-gonic/gin")
func main() {  router := gin.Default()  router.GET("/get/query", func(c *gin.Context) {    //a有值就获得,没有不处理    if a, ok := c.GetQuery("a"); ok {      fmt.Printf("a的值%v", a)    }    //取得b的值    b := c.Query("b")    fmt.Println()    fmt.Printf("b的值%v", b)    //d如果有值就取得d的值,没有就给默认值    d := c.DefaultQuery("d", "d")    fmt.Println()    fmt.Printf("d的值%v", d)    fmt.Println()    e := c.QueryArray("e")    fmt.Printf("e的值%v", e)    fmt.Println()    f := c.QueryMap("f")    fmt.Printf("f的值%v", f)    fmt.Println()
  })
  router.POST("/post/query", func(c *gin.Context) {    a := c.PostForm("a")    fmt.Printf("a的值%v", a)    fmt.Println()    b := c.DefaultPostForm("b", "b")    fmt.Printf("b的值%v", b)    fmt.Println()
    d := c.PostFormArray("d")    fmt.Printf("d的值%v", d)    fmt.Println()    e := c.PostFormMap("e")    fmt.Printf("e的值%v", e)    fmt.Println()  })  router.GET("/get/uri/:a", func(c *gin.Context) {    a := c.Param("a")    fmt.Printf("a的值%v", a)    fmt.Println()  })  router.Run(":8080")}

访问地址http://127.0.0.1:8080/get/uri/1

控制台输出

a的值1
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大话swift 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档