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