GO中的net/url包,实现对URL的处理。
1、对URL进行编码和解码
func QueryEscape(s string) string
QueryEscape函数对s进行转码使之可以安全的用在URL查询里。
func QueryUnescape(s string) (string, error)
QueryUnescape函数用于将QueryEscape转码的字符串还原。它会把%AB改为字节0xAB,将’+’改为’ ‘。如果有某个%后面未跟两个十六进制数字,本函数会返回错误。
2、对Path(路径)进行编码和解码
func PathEscape(s string) string
func PathUnescape(s string) (string, error)
tips 01 : PathEscape只对 / 进行编码,注意和QueryEscape的区别;
3、URL类型 *重点
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 ParseRequestURI(rawurl string) (url *URL, err error) func (u *URL) IsAbs() bool func (u *URL) Query() Values func (u *URL) RequestURI() string func (u *URL) String() string func (u *URL) Parse(ref string) (*URL, error) func (u *URL) ResolveReference(ref *URL) *URL
4、URL中的key=value键值对
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