我正在尝试从URL中提取不区分大小写的查询参数/staging/ec/23463/front-view-72768.jpg?angle=90&or=0x0&wd=400&ht=200
。当我尝试以小写形式转换整个URL时,它会引发以下异常:
cannot use r.URL (type *url.URL) as type string in argument to strings.ToLower
我打印了URL的值,它表示底层它将所有查询字符串存储为地图,即map[angle:[90] or:[0x0] wd:[400] ht:[200]]
。因此,我将使用此r.URL.Query().Get("or")
获得正确的值但是如果查询字符串出现Or
。它会失败。
答案 0 :(得分:5)
* URL.Query()返回url.Values类型的值,它只是一个带有一些额外方法的map[string][]string
。
由于URL值根据定义区分大小写,因此您必须直接访问地图。
var query url.Values
for k, vs := range query {
if strings.ToLower(k) == "ok" {
// do something with vs
}
}
答案 1 :(得分:0)
cannot use r.URL (type *url.URL) as type string in argument to strings.ToLower
这是因为您传递的是ur.URL
而不是string
。从url到String()
函数获取字符串。
url.String()