package main
import "fmt"
import "net/url"
import "strings"
func main() {
s := "postgres://user:pass@host.com:5432/path?k=v#f" //uel地址
u, _ := url.Parse(s) //解析获得的S能直接使用
fmt.Println("Scheme:", u.Scheme) //这个是URL中的一个地址,也可以理解为协议,http,localhost,在iOS中,拿他区分来源应用,比如微信中发起的"weixin://"
fmt.Println("User:", u.User) //用户信息
fmt.Println("username:", u.User.Username()) //用户名
p, _ := u.User.Password()
fmt.Println("password:", p) //密码
// Host包含了主机名和端口,如果需要可以手动分解主机名和端口
fmt.Println("host:", u.Host)
h := strings.Split(u.Host, ":")
fmt.Println("h0:", h[0])
fmt.Println("h1:", h[1])
// 这里我们解析出路径和`#`后面的片段
fmt.Println("path:", u.Path)
fmt.Println("fragment:", u.Fragment)
fmt.Println(u.RawQuery) //URL后面跟的参数值value
m, _ := url.ParseQuery(u.RawQuery)
fmt.Println(m)
fmt.Println(m["k"][0])
q := u.Query()
q.Add("one", "one")
u.RawQuery = q.Encode() //把添加的参数关联进URL
fmt.Println("url:", u)
}
运行结果:
image.png
网友评论