Golang net.url 包详解
net/url
包提供了用于解析和操作URL的工具。以下是一些主要的API和使用示例:
url.Parse
:解析URL字符串。url.ParseRequestURI
:解析请求URL字符串,如果不是合法的请求URI会返回错误。url.Values
:一个类型安全的map,用于表示URL查询参数。url.URL
:表示一个URL,包含了组成URL的各个部分。
示例代码:
package main
import (
"fmt"
"net/url"
)
func main() {
// 解析URL
u, err := url.Parse("https://example.com:8080/path?query=value#fragment")
if err != nil {
panic(err)
}
fmt.Println("Scheme:", u.Scheme)
fmt.Println("Host:", u.Host)
fmt.Println("Path:", u.Path)
fmt.Println("Query:", u.RawQuery)
fmt.Println("Fragment:", u.Fragment)
// 解析查询参数
params, err := url.ParseQuery(u.RawQuery)
if err != nil {
panic(err)
}
fmt.Println("Query Parameter:", params["query"][0])
// 修改查询参数
params["query"] = []string{"new_value"}
u.RawQuery = params.Encode()
fmt.Println("Modified URL:", u.String())
}
这段代码展示了如何解析一个URL,如何访问其组成部分,以及如何修改查询参数。
评论已关闭