解析和构建 url 查询参数时应使用 net/url 标准库以避免常见错误。1. 使用 url.parse() 解析 url 并通过 query() 获取参数,注意其返回的是 map[string][]string 类型,单值可用 get()。2. 构建 url 时使用 url.values 添加参数并调用 encode() 自动编码,推荐 add()、set() 和 del() 方法管理参数。3. 特殊字符处理应依赖 queryescape() 和 unescape() 实现安全编码与解码,避免手动替换符号。掌握 parse()、query()、values、encode() 及 escape 方法是关键。

在使用 Golang 进行网络开发时,经常需要处理 URL 的解析和构建,尤其是查询参数的拼接、编码与解码。Go 标准库中的
net/url

下面通过几个常见场景来说明如何用好这个库,特别是处理查询参数和 URL 编码的小技巧。

当你拿到一个完整的 URL 字符串,比如:
立即学习“go语言免费学习笔记(深入)”;
https://example.com/path?name=John%20Doe&id=123
可以使用
url.Parse()
Query()

parsedURL, _ := url.Parse("https://example.com/path?name=John%20Doe&id=123")
params := parsedURL.Query()
fmt.Println(params.Get("name")) // 输出: John Doe
fmt.Println(params.Get("id")) // 输出: 123注意点:
Query()
Values
map[string][]string
Get()
params["key"]
有时候我们需要手动拼接一个带参数的 URL,这时候不要自己手动拼字符串,而是使用
url.Values
base := "https://example.com/search"
params := url.Values{}
params.Add("q", "hello world")
params.Add("limit", "10")
fullURL := base + "?" + params.Encode()
// 结果类似:https://example.com/search?q=hello+world&limit=10小技巧:
Add()
+
Set()
Del()
URL 中的参数通常包含中文、空格、符号等非标准字符,必须经过正确编码才能保证传输安全。
Go 的
url.Values.Encode()
url.QueryEscape()
url.QueryUnescape()
举个例子:
encoded := url.QueryEscape("你好!@#")
// 输出: %E4%BD%A0%E5%A5%BD!@#
decoded, _ := url.QueryUnescape("%E4%BD%A0%E5%A5%BD!@#")
// 输出: 你好!@#常见误区提醒:
%20
+
+
%20
Encode()
+
总的来说,Golang 的
url
Parse()
Query()
Values
QueryEscape
Unescape
基本上就这些,不复杂但容易忽略的地方都列出来了。
以上就是Golang的url库如何解析和构建URL 演示查询参数处理与URL编码技巧的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号