包函数

func QueryEscape(s string) string 对url编码
func QueryUnescape(s string) (string, error) 对url解码

  1. func main() {
  2. s1 := url.QueryEscape("https://www.baidu.com/s?wd=%E5%93%88%E5%93%88")
  3. fmt.Println(s1)
  4. s2, _ := url.QueryUnescape(s1)
  5. fmt.Println(s2)
  6. }
  7. https%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%25E5%2593%2588%25E5%2593%2588
  8. https://www.baidu.com/s?wd=%E5%93%88%E5%93%88

type Values

Values将建映射到值的列表

  1. 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]

  1. type URL struct {
  2. Scheme string
  3. Opaque string // 编码后的不透明数据
  4. User *Userinfo // 用户名和密码信息
  5. Host string // host或host:port
  6. Path string
  7. RawQuery string // 编码后的查询字符串,没有'?'
  8. Fragment string // 引用的片段(文档位置),没有'#'
  9. }

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