package main import ( "fmt" "net/url" ) func main() { escape := url.QueryEscape("你好世界+%AB") fmt.Println(escape) //QueryEscape函数对string进行转码,并返回 fmt.Println(url.QueryUnescape(escape)) //QueryEscape的解码函数 url1 := "http://localhost:8080/user/show?m1=77" u, err := url.Parse(url1) if err != nil { fmt.Println(err) } fmt.Println(u.Host, u.String()) u.Host = "baidu.com" //修改host fmt.Println(u) u1, _ := url.ParseRequestURI("http://localhost:8080/tongji/huifanginfo?m1=117&aa=bb&cc=中国") fmt.Println(u1.IsAbs()) //是否是url fmt.Println(u1) u2 := u1.RawQuery //url ?后面的参数字符串 fmt.Println(url.ParseQuery(u2)) //解析查询字符串到url.values fmt.Println(u1.Query()) //返回u1的url.values fmt.Println(u1.RequestURI()) //返回编码好的path?query或opaque?query字符串 fmt.Println(u1.String()) //返回*url的字符串 fmt.Println(u1.Parse("?m1=117&aa=bb&cc=中国&dd=新加的参数")) //补全u1的url fmt.Println(u1.ResolveReference(u)) //和上面差不多,参数是一个*url 不返回错误,没看明白 v := url.Values{} v.Set("name", "zhangsan") //将key对应的值集设为只有value,它会替换掉已有的值集 v.Add("sex", "男") //将value添加到key关联的值集里原有的值后面 v.Add("sex", "保密") fmt.Println(v.Get("name")) //获取key对应的值集的第一个值 fmt.Println(v.Get("sex")) fmt.Println(v["sex"]) //这个会取出这个值集的slice fmt.Println(v.Encode()) //将v编码为url编码格式 fmt.Println(url.ParseQuery(v.Encode())) //解析一个url编码的查询字符串,返回Values }
时间: 2024-10-07 09:43:14