Go中的net/url包学习笔记

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>