www.example.com?car=sedan&color=bluecarsedansedanblue?)&

参数用于在页面之间或向服务器发送搜索查询、链接推荐、用户偏好和其他数据。

在本文中,我们将向您展示如何使用 Golang 解析和操作 URL 参数。

获取 URL 参数

在 Golang 中,了解如何使用 URL 参数对于构建后端 Web 应用程序至关重要。通过使用Golang 中的net/http包,开发人员可以解析 URL 及其参数,以使用这些信息来处理请求并生成响应。

https://example.com/?product=shirt&color=blue&newuser&size=murl.ParseQuery
urlStr := "https://example.com/?product=shirt&color=blue&newuser&size=m"
myUrl, _ := url.Parse(urlStr)
params, _ := url.ParseQuery(myUrl.RawQuery)
fmt.Println(params)

// Output: map[color:[blue] newuser:[ ] product:[shirt] size:[m]]

然后我们可以使用键访问各个查询参数:

product := params.Get("product") fmt.Println(product) // Output: shirt

color := params.Get("color") fmt.Println(color) // Output: blue

newUser := params.Get("newuser") fmt.Println(newUser) // Output:

其他有用的方法

检查参数是否存在

Get()
if _, ok := params["product"]; ok { 
    fmt.Println("Product parameter exists")
}

if _, ok := params["paymentmethod"]; !ok {
    fmt.Println("Paymentmethod parameter does not exist")
}

获取所有参数的值

params[key]
sizes := params["size"] fmt.Println(sizes) // Output: [m]

//Programmatically add a second size parameter. params.Add("size", "xl")

fmt.Println(params["size"]) // Output: [m xl]

遍历参数

range
for key, value := range params {
    fmt.Printf("%s: %s\n", key, value)
}

// Output: color: [blue] newuser: [ ] product: [shirt] size: [m xl]

net /url包是标准库的一部分,在所有版本的 Golang 中都可用,使其得到广泛支持。

结论

在本文中,我们向您展示了如何使用内置的“net/url”包在 Golang 中提取和操作 URL 参数。