日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Gin框架获取参数

發布時間:2025/3/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Gin框架获取参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、querystring,的是URL中?后面攜帶的參數,例如:/user/search?username=小王子&address=沙河。 獲取請求的querystring參數的方法如下。c.Query

username := c.DefaultQuery("username", "小王子") //username := c.Query("username") address := c.Query("address") //輸出json結果給調用方 c.JSON(http.StatusOK, gin.H{"message": "ok","username": username,"address": address, })

2、獲取form參數,當前端請求的數據通過form表單提交時,例如向/user/search發送一個POST請求,獲取請求數據的方式如下。c.PostForm

username := c.PostForm("username")address := c.PostForm("address")//輸出json結果給調用方c.JSON(http.StatusOK, gin.H{"message": "ok","username": username,"address": address,})

3、獲取json參數,當前端請求的數據通過JSON提交時,例如向/json發送一個POST請求,則獲取請求參數的方式如下。c.GetRawData()

b, _ := c.GetRawData() // 從c.Request.Body讀取請求數據// 定義map或結構體var m map[string]interface{}// 反序列化_ = json.Unmarshal(b, &m)c.JSON(http.StatusOK, m)

4、獲取path參數,請求的參數通過URL路徑傳遞,例如:/user/search/小王子/沙河。 獲取請求URL路徑中的參數的方式如下。c.Param

username := c.Param("username")address := c.Param("address")//輸出json結果給調用方c.JSON(http.StatusOK, gin.H{"message": "ok","username": username,"address": address,})

5、參數綁定,為能夠更方便的獲取請求的相關參數,可以基于請求的Content-Type識別請求數據類型并利用反射機制自動提取請求中QueryString、form表單、JSON、XML,并把值綁定到指定的結構體對象c.showbind

// Binding from JSON type Login struct {User string `form:"user" json:"user" binding:"required"`Password string `form:"password" json:"password" binding:"required"` }func main() {router := gin.Default()// 綁定JSON的示例 ({"user": "q1mi", "password": "123456"})router.POST("/loginJSON", func(c *gin.Context) {var login Loginif err := c.ShouldBind(&login); err == nil {fmt.Printf("login info:%#v\n", login)c.JSON(http.StatusOK, gin.H{"user": login.User,"password": login.Password,})} else {c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})}})// 綁定form表單示例 (user=q1mi&password=123456)router.POST("/loginForm", func(c *gin.Context) {var login Login// ShouldBind()會根據請求的Content-Type自行選擇綁定器if err := c.ShouldBind(&login); err == nil {c.JSON(http.StatusOK, gin.H{"user": login.User,"password": login.Password,})} else {c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})}})// 綁定QueryString示例 (/loginQuery?user=q1mi&password=123456)router.GET("/loginForm", func(c *gin.Context) {var login Login// ShouldBind()會根據請求的Content-Type自行選擇綁定器if err := c.ShouldBind(&login); err == nil {c.JSON(http.StatusOK, gin.H{"user": login.User,"password": login.Password,})} else {c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})}})// Listen and serve on 0.0.0.0:8080router.Run(":8080") }

showbind會按照下面的順序解析請求中的數據完成綁定:

  • 如果是?GET?請求,只使用?Form?綁定引擎(query)。
  • 如果是?POST?請求,首先檢查?content-type?是否為?JSON?或?XML,然后再使用?Form(form-data)。
  • 總結

    以上是生活随笔為你收集整理的Gin框架获取参数的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产精品污www一区二区三区 | 国产免费中文字幕 | 在线国产视频一区 | 91福利影院 | 久久毛片网站 | 欧洲女同同性吃奶 | 久草中文在线 | 亚洲欧美视频在线观看 | 中文字幕第四页 | 99久久精品国产一区色 | va在线 | 在线观看免费视频国产 | 青草视频污 | 香蕉私人影院 | 日韩精品第一页 | 午夜影院一区 | 极品淫少妇| 97黄色片| 玖玖精品在线 | 欧美黑人一区二区三区 | 日韩欧美在线一区 | 亚洲情网| 91成人免费| 超碰在线观看97 | 欧美国产日韩综合 | 狠狠干综合 | 亚洲精品成人在线视频 | 精品少妇人妻av免费久久洗澡 | 亚洲色图影院 | 日韩大片一区二区 | 色欲一区二区三区精品a片 在线观看黄网站 | 日本黄大片在线观看 | 综合亚洲欧美 | 久久精品视频91 | 中文字幕一区二区三区人妻在线视频 | 欧美.com | 国产女主播av | 五月激情丁香网 | 一集毛片 | 久久国产黄色片 | 国产精品成人国产乱一区 | 日韩午夜三级 | 91久久久精品 | 女人夜夜春 | 久草老司机 | 福利在线免费视频 | 国产老头老太作爱视频 | 国产大片一区二区三区 | 特级毛片在线观看 | 欧美激情成人 | 91网站免费视频 | 国产成人精品免高潮在线观看 | 99reav| 亚洲做受高潮无遮挡 | 九九色在线 | 亚洲欧洲视频在线观看 | 欧美大片在线 | 亚洲精品国产精品国 | 婷婷亚洲五月 | 最近中文字幕免费视频 | 国产51页 | 18pao国产成视频永久免费 | 日本一二三视频 | 天堂视频免费看 | 成人国产亚洲 | 日本高清视频www夜色资源 | 成人网址在线观看 | 久久亚洲网站 | 欧美日韩a v | 91成年视频 | 亚洲精品日韩av | 日本啪啪片 | 真人bbbbbbbbb毛片 | 在线你懂的视频 | 狠狠干2020 | 久久青娱乐 | 国产精品69av| 黄色三级免费网站 | 91色视频| hd性videos意大利精品 | 国产黄色影视 | 日韩成人一区二区视频 | av中文字幕在线播放 | 人人干人人爽 | 女人一区二区 | 91av网址 | 99九九精品视频 | 国产一区二区色 | 国产精品美女久久久久久久久 | 亚洲精品乱码久久久久久自慰 | 蜜臂av| 国产九色在线 | 91自啪| 苍井空亚洲精品aa片在线播放 | av成人免费观看 | 黄a大片 | 在线观看免费黄色 | 男人天堂综合网 | 国产情侣91|