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对象