包函数
func QueryEscape(s string) string 对url编码
func QueryUnescape(s string) (string, error) 对url解码
func main() {
s1 := url.QueryEscape("https://www.baidu.com/s?wd=%E5%93%88%E5%93%88")
fmt.Println(s1)
s2, _ := url.QueryUnescape(s1)
fmt.Println(s2)
}
https%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%25E5%2593%2588%25E5%2593%2588
https://www.baidu.com/s?wd=%E5%93%88%E5%93%88
type Values
Values将建映射到值的列表
type Values map[string][]string
func ParseQuery(query string) (m Values, err error)
func (v Values) Get(key string) string
func (v Values) Set(key, value string)
func (v Values) Add(key, value string)
func (v Values) Del(key string)
func (v Values) Encode() string 将v编码为url编码格式(“bar=baz&foo=quux”),编码时会以键进行排序
type URL
URL类型代表一个解析后的URL,scheme://[userinfo@]host/path[?query][#fragment]
type URL struct {
Scheme string
Opaque string // 编码后的不透明数据
User *Userinfo // 用户名和密码信息
Host string // host或host:port
Path string
RawQuery string // 编码后的查询字符串,没有'?'
Fragment string // 引用的片段(文档位置),没有'#'
}
func Parse(rawurl string) (url URL, err error)
func (u URL) IsAbs() bool 函数在URL是绝对URL时才返回真
func (u URL) Query() Values 返回其表示的Values类型键值对
func (u URL) RequestURI() string 返回编码好的path?query
func (u *URL) String() string