tips:
- 获取queryString我们经常使用GET请求
go mod tidy
可以分析代码中依赖的第三方包,然后在go.mod中将这些以来记录下来。
例如:想要获取query字段中的杨超越:http://127.0.0.1:9090/web?query=杨超越
方式一:Query
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/web", func(c *gin.Context) {
//这里要获取浏览器那边发请求携带的query string参数
name := c.Query("query")
c.JSON(http.StatusOK, gin.H{
"name": name,
})
})
r.Run(":9090")
}
测试结果如下:
方式二:DefaultQuery
这其实和方式一相似,区别在于,如果没有查询到数据,可以用设置好的default数据:
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/web", func(c *gin.Context) {
//这里要获取浏览器那边发请求携带的query string参数
//name := c.Query("query")
name := c.DefaultQuery("query", "someone")
c.JSON(http.StatusOK, gin.H{
"name": name,
})
})
r.Run(":9090")
}
测试结果如下:
方式三:GetQuery
这个函数有2个返回值,其实就是多了一个bool值,如果去不到参数,第二个返回的就是false:
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/web", func(c *gin.Context) {
//这里要获取浏览器那边发请求携带的query string参数
//name := c.Query("query")
//name := c.DefaultQuery("query", "someone")
name, ok := c.GetQuery("query")
if !ok {
name = "someone"
}
c.JSON(http.StatusOK, gin.H{
"name": name,
})
})
r.Run(":9090")
}
我觉第三种方式,考虑的比较全面,我更喜欢使用,当然,另外两种方式也可以在合适的场景使用。
参考:bilibili
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。