29

我正在查看https://godoc.org/github.com/gin-gonic/gin一种方法的文档,该方法返回传递的所有查询参数的列表。有一些方法可以返回查询参数的值。是否有任何方法可以返回传递的所有查询参数的列表?如果我们没有得到值也没关系。我正在使用以下代码获取查询参数的值。但是这段代码只能检查查询参数是否存在。

func myHandler(c *gin.Context) {

    // check for query params
    if queryParam, ok := c.GetQuery("startingIndex"); ok {
        if queryParam == "" {
            c.Header("Content-Type", "application/json")
            c.JSON(http.StatusNotFound,
                gin.H{"Error: ": "Invalid startingIndex on search filter!"})
            c.Abort()
            return
        }
    }
}
4

3 回答 3

49

你应该能够做到c.Request.URL.Query()这将返回一个Values这是一个map[string][]string

于 2016-12-22T09:22:19.047 回答
14

如果您正在谈论 GET 查询参数,您可以使用以下方法检索它们:

c.Request.URL.Query()

你会得到一个 Values 类型,它是map[string][]string

文档:https ://golang.org/pkg/net/url/#URL.Query

于 2016-12-22T09:21:23.013 回答
9

您可以使用以下方式获取查询参数:

c.Query("key") -> returns string
or
c.GetQuery("key") -> returns (string, bool->ok)
于 2021-06-14T08:31:17.020 回答