Go r.URL.Query()中的键映射不一致

Go r.URL.Query()中的键映射不一致,go,go-http,Go,Go Http,当使用r.URL.Query()解析URL时,我得到了不一致的结果,我想知道是否有其他人也有同样的问题和/或可行的解决方法。键有时返回?keyName,而不是keyName,因此我经常使用键。获取两个值的 func(w http.ResponseWriter,r*http.Request){ 键:=r.URL.Query() lat:=keys.Get(“lat”) 如果lat==“”{ //由于某些原因,r.URL.Query有时会返回?lat而不是lat。。。 lat=键。获取(“?lat”

当使用
r.URL.Query()
解析URL时,我得到了不一致的结果,我想知道是否有其他人也有同样的问题和/或可行的解决方法。键有时返回
?keyName
,而不是
keyName
,因此我经常使用
键。获取两个值的

func(w http.ResponseWriter,r*http.Request){
键:=r.URL.Query()
lat:=keys.Get(“lat”)
如果lat==“”{
//由于某些原因,r.URL.Query有时会返回?lat而不是lat。。。
lat=键。获取(“?lat”)
如果lat==“”{
//这里出错
}
}
lng:=键。获取(“lng”)
如果液化天然气=“”{
lng=键。获取(“?lng”)
如果液化天然气=“”{
//这里出错
}
}
}
测试URL:
http://localhost:3000/?lng=-75.7572111845&type=属性

电流输出 预期
找出了罪魁祸首-由于某种原因,有一个中间件正在预处理查询并通过代理转发请求

func(h*Handler)代理(w http.ResponseWriter,r*http.Request,uri*url.url){
参数:=r.URL.Query()
代理:=httputil.ReverseProxy{Director:func(proxyRequest*http.Request){
proxyRequest.URL.Scheme=uri.Scheme
proxyRequest.URL.Host=uri.Host
proxyRequest.URL.Path=uri.Path
proxyRequest.Body=r.Body
proxyRequest.URL.RawQuery=paramsToString(params)
}}
proxy.ServeHTTP(w,r)
}
func参数字符串(m url.Values)字符串{
键:=make([]字符串,0,len(m))
对于k:=范围m{
keys=append(keys,k+“=”+m[k][0])
}
返回“?”+字符串。连接(键“&”)
}
proxyRequest.URL.RawQuery
需要原始查询,而不是带有
的查询;
paramsToString
func实际上应该是

func参数字符串(m url.Values)字符串{
键:=make([]字符串,0,len(m))
对于k:=范围m{
keys=append(keys,k+“=”+m[k][0])
}
返回字符串。连接(键“&”)
}

您可以打印那些在查询参数中获得
的请求的url路径吗?然后,客户端会在url中添加一个问号。
2019/04/08 10:59:27 map[lat:[39.5040840724] lng:[-75.7572111845]]
2019/04/08 10:59:28 map[?lat:[39.5040840724] lng:[-75.7572111845]]
2019/04/08 10:59:29 map[lat:[39.5040840724] lng:[-75.7572111845]]
2019/04/08 10:59:30 map[lat:[39.5040840724] lng:[-75.7572111845]]
2019/04/08 10:59:31 map[lat:[39.5040840724] ?lng:[-75.7572111845]]
2019/04/08 10:59:27 map[lat:[39.5040840724] lng:[-75.7572111845]]
2019/04/08 10:59:28 map[lat:[39.5040840724] lng:[-75.7572111845]]
2019/04/08 10:59:29 map[lat:[39.5040840724] lng:[-75.7572111845]]
2019/04/08 10:59:30 map[lat:[39.5040840724] lng:[-75.7572111845]]
2019/04/08 10:59:31 map[lat:[39.5040840724] lng:[-75.7572111845]]