如何使用Go解析URL中的重复参数

如何使用Go解析URL中的重复参数,go,Go,我接到一个来自前端应用程序的电话,该应用程序使用重复键序列化阵列: queryString.stringify({foo: [1, 2, 3]}); //=> 'foo=1&foo=2&foo=3' 并生成如下url: https://endpoint?format=json&Status=Active&Status=Disabled&Status=Test 后端正在运行并使用: 如何解析URL中重复的参数? 现在我只能得到最后一个值 我尝试过的

我接到一个来自前端应用程序的电话,该应用程序使用重复键序列化阵列:

queryString.stringify({foo: [1, 2, 3]});
//=> 'foo=1&foo=2&foo=3'
并生成如下url:

https://endpoint?format=json&Status=Active&Status=Disabled&Status=Test
后端正在运行并使用:

如何解析URL中重复的参数? 现在我只能得到最后一个值

我尝试过的go代码:

req.QueryParameter("CircuitStatus")
logger.Log.Debug().Msgf("CircuitStatus %v", CircuitStatus)
日志:

{"level":"debug","time":"2019-05-13T11:43:47+03:00","message":"CircuitStatus Test"}

使用QueryParameters根据返回的字符串

req.QueryParameters("CircuitStatus")

引用自:“若要访问同一密钥的多个值,请调用ParseForm,然后直接检查Request.Form”。如果您可以访问原始查询,
url.ParseQuery
,它返回一个
url.values
。值也应该起作用。请注意,您提供的url中不存在电路状态。你能准备一个可复制的例子吗?你可能试过单数。见“s”。您的示例使用的是
QueryParameter
,而不是
QueryParameters
我也尝试过,我只有第一个值,它忽略了rest。我更新了我的问题,感谢您的帮助。该测试也表明了类似的用法。不知道为什么它在你的情况下不起作用。您还可以打印带有url的请求,以查看实际传递了哪些参数。