gpt4 book ai didi

url - 使用 net/url 内置包解析带有矩阵参数的 URL

转载 作者:数据小太阳 更新时间:2023-10-29 03:29:21 25 4
gpt4 key购买 nike

似乎URL不支持 matrix parameters

// From net/url
type URL struct {
Scheme string
Opaque string // encoded opaque data
User *Userinfo // username and password information
Host string // host or host:port
Path string
RawQuery string // encoded query values, without '?'
Fragment string // fragment for references, without '#'
}
  • 为什么?
  • 如何从 URL 中提取矩阵参数?我什么时候应该使用它们而不是使用嵌入在 URL 的 request.URL.RawQuery 部分中的请求参数?

最佳答案

参数最终被放入 url.Path 中。这是一个可以将它们放入 Query 中的函数:

func ParseWithMatrix(u string) (*url.URL, error) {
parsed, err := url.Parse(u)
if err != nil {
return nil, err
}
if strings.Contains(parsed.Path, ";") {
q := parsed.Path[strings.Index(parsed.Path, ";")+1:]
m, err := url.ParseQuery(q)
if err != nil {
return nil, err
}
for k, vs := range parsed.Query() {
for _, v := range vs {
m.Add(k, v)
}
}
parsed.Path = parsed.Path[:strings.Index(parsed.Path, ";")]
parsed.RawQuery = m.Encode()
}
return parsed, nil
}

关于url - 使用 net/url 内置包解析带有矩阵参数的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20838065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com