Documentation ¶
Index ¶
- Variables
- func AddQueryParamsToUrl(rawURL string, queryParams map[string][]string) (string, error)
- func AddQueryParamsToValues(values url.Values, queryParams map[string][]string) url.Values
- func AddToRawQuery(u *url.URL, queryParams map[string][]string)
- func OverrideRawQuery(u *url.URL, queryParams map[string][]string)
- func ToEscapedQueryString[T ~map[string][]string](m T) string
Constants ¶
This section is empty.
Variables ¶
var DecodeURIComponent func(s string) (string, error) = url.QueryUnescape
DecodeURIComponent 解码.
e.g. ("") => "", nil
var EncodeURIComponent func(s string) string = url.QueryEscape
EncodeURIComponent 编码.
!!!: 事实上,"不完全"等同于js的 encodeURI || encodeURIComponent.
e.g. golang ("") => "" ("test 测试") => "test+%E6%B5%8B%E8%AF%95"
e.g.1 js encodeURIComponent("test 测试") => "test%20%E6%B5%8B%E8%AF%95"
Parse 解析url(http、https、rtsp、rtmp等协议)
PS: (1) URL.EscapedPath(): 处理过的 path (2) URL.EscapedFragment(): 处理过的 fragment(# 后面的玩意) (3) Values.Encode(): 处理过的 query string (4) url.Parse vs url.ParseRequestURI: 当要解析的url字符串中包含有字符“#”时,使用url.Parse解析,会导致#后面的参数解析不出来。而使用ParseRequestURI就能解析到.
使用场景: (a) rawURL中必定不存在'#',使用: url.Verify (b) rawURL中可能存在'#',使用: url.ParseRequestURI
GoLand教程-Go URL解析
https://mp.weixin.qq.com/s/i6uEUzvu5BPna5QtSYDSMQ
golang url.Parse 解析
https://blog.csdn.net/zhuyuqiang1238/article/details/121807708
@param rawURL !!!不能是如下格式: "localhost:8080"
e.g.
u, err := urlKit.Verify("http://localhost:8080/go?a=123&b=456") if err != nil { panic(err) } fmt.Println(u.Scheme) // http fmt.Println(u.Host) // localhost:8080 fmt.Println(u.Hostname()) // localhost fmt.Println(u.Port()) // 8080 fmt.Println(u.Path) // /go fmt.Println(u.RawQuery) // a=123&b=456 fmt.Println(u.Query()) // map[a:[123] b:[456]]
var ParseQuery func(query string) (url.Values, error) = url.ParseQuery
ParseQuery
e.g.
u, err := urlKit.Verify("http://localhost:8080/go?a=123&b=456") if err != nil { panic(err) } fmt.Println(u.RawQuery) // a=123&b=456 m, err := urlKit.ParseQuery(u.RawQuery) if err != nil { panic(err) } fmt.Println(m) // map[a:[123] b:[456]]
var ParseRequestURI func(rawURL string) (*url.URL, error) = url.ParseRequestURI
var PolyfillUrl func(reqUrl string, queryParams map[string][]string) (string, error) = AddQueryParamsToUrl
PolyfillUrl 优化url(类似Chrome浏览器,地址栏中的url有问题,但复制出来的是好的).
@param queryParams 额外的query参数, (1) 没有可传nil
(2) 值中切片中的字符串应当是未处理(编码)过的
Functions ¶
func AddQueryParamsToUrl ¶
func AddQueryParamsToValues ¶
AddQueryParamsToValues
@param queryParams 切片中的字符串应当是未处理(编码)过的 @return 必定不为nil
func AddToRawQuery ¶ added in v3.0.33
AddToRawQuery 增添请求的query.
PS: 可能会修改 req.URL.RawQuery.
@param queryParams 切片中的字符串应当是未处理(编码)过的
Types ¶
This section is empty.