lua post参数获取,参数截断

post 请求头:

  a.application/x-www-form-urlencoded 普通表单提交

  b.multipart/form-data 含有文件的表单,二进制上传

  c.application/json 将参数json字符串格式放入body上传,客户端自己解析

openresty接收post参数时必须ngx.req.read_body()读取body,但在解析不同请求头数据时还有区别:

  a.application/x-www-form-urlencoded 调用ngx.req.get_post_args()获取参数

  b.multipart/form-data

  c.application/json 通过调用ngx.req.get_post_args()获取参数时,参数被openresty处理为{"json参数":true}的格式(被包装成一个map对象的key),而且当json参数包含'='时会发生参数截断,丢失'='后面的数据;但通过ngx.req.get_body_data()则可以直接拿到json参数的字符串,直接反序列化就能获得post参数json对象