lua 在 nginx 里面获取 http get 请求的 url 数组参数时有个小坑需要特别注意。
线上的 get 请求传数组参数的形式让人眼花缭乱:
?p=v1&p=v2 ?p[]=v1&p[]=v2 ?p[0]=v1&p[1]=v2
三种形式都有,然后 lua 的坑在于获取没有数组下标的数组参数的时候,数据格式可能不一样...导致程序异常。
lua 在 nginx 里面获取到的是:
raw: ?p=v1&p=v2 -> {"p":["v1","v2"]} ------------- raw: ?p=v1 -> {"p":"v1"}
一个元素的时候它的值是字符串
go http 包的处理:
raw: ?p=v1&p=v2 -> map[p:[v1 v2]] ------------- raw: ?p=v1 -> map[p:[v1]]
表现都一致,p的值都是一个数组
在 gin 里面,必须要指定方法获取参数 c.Query("p")
只能得到第一个 p 参数的值,
要拿数组需要使用 c.QueryArray("p")
拿到的也一定是数组。
网友66.*.*.214[火星]2021-04-19 11:04
网友66.*.*.212[火星]2021-04-19 10:54
网友220.*.*.173[北京]2021-04-19 10:52
网友106.*.*.74[火星]2021-04-19 09:16
发表评论
亲~ 评论内容是必须的哟! o(∩_∩)o
昵称
邮箱
主页
评论