栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Gin获取querystring参数的几种方式

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Gin获取querystring参数的几种方式

参考资料:李文周的博客 - Gin框架介绍及使用
Bilibili链接:【最新Go Web开发教程】基于gin框架和gorm的web开发实战 (七米出品)

目录
  • Gin
  • 编写一个Gin实例
    • 方式1 - Query()
    • 方式2 - GetQuery()
    • 方式3 - DefaultQuery()

Gin

Gin是Golang最流行的Web框架,GitHub上有32K+ Star,是基于httprouter开发的简单易用的轻量级Web框架。
首先新建一个Go modules项目,在Environment中添加GOPROXY=http://goproxy.cn。

新建项目完成之后,右键单击左侧的文件夹,选择“Open In”→“Terminal”在终端中打开,输入命令go get -u github.com/gin-gonic/gin下载并导入Gin的依赖。

在项目的go.mod文件中可以看到导入的依赖:

编写一个Gin实例

新建main.go文件,写入如下代码创建一个Gin实例:

package main

import (
	"github.com/gin-gonic/gin"
)

func main() {
	// 创建一个默认的路由引擎
	engine := gin.Default()

	engine.GET("/web", func(context *gin.Context) {
		// TODO 获取浏览器发送请求携带的querystring
	})

	err := engine.Run()    // 默认端口号为8080
	if err != nil {
		return
	}
}

Querystring指的是URL中?后面携带的参数。下面介绍获取querystring参数的几种方式。

方式1 - Query()

Query()的函数原型为func (c *Context) Query(key string) string,函数返回的字符串即为querystring。

name := context.Query("query")
context.JSON(http.StatusOK, gin.H{
	"name": name,
})
方式2 - GetQuery()

GetQuery()的函数原型为func (c *Context) GetQuery(key string) (string, bool),可以看出它与Query()的不同是它返回了querystring和一个布尔值,即如果没有成功获取到querystring,第二个返回值为false。
实际上如果查看Query()的源码,我们可以发现Query()就是调用了GetQuery(),只是忽略了返回的布尔值。

func (c *Context) Query(key string) string {
	value, _ := c.GetQuery(key)
	return value
}

下面编写Gin实例。如果获取不到querystring,即ok为false时,就将querystring设置为somebody。

name, ok := context.GetQuery("query")
if !ok {
	name = "somebody"
}
context.JSON(http.StatusOK, gin.H{
	"name": name,
})
方式3 - DefaultQuery()

DefaultQuery()的函数原型为func (c *Context) DefaultQuery(key string, defaultValue string) string,它有两个参数,当获取不到key作为querystring时,则采用defaultValue作为querystring。DefaultQuery()可以看作是简化版的GetQuery(),其源码如下:

func (c *Context) DefaultQuery(key, defaultValue string) string {
	if value, ok := c.GetQuery(key); ok {
		return value
	}
	return defaultValue
}

下面编写Gin实例。如果获取不到querystring,就将querystring设置为somebody(即设置defaultValue参数为somebody)。

name := context.DefaultQuery("query", "somebody")
context.JSON(http.StatusOK, gin.H{
	"name": name,
})

除此之外还有很多方法,在此不一一列举。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/909402.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号