openresty ngx_lua请求响应
请求头操作
ngx.req.set_header:添加、修改请求头
语法格式:ngx.req.set_header(name, value)
* name 如果不存在,表示添加
* name 如果存在,表示修改
使用环境:set_by_lua*、rewrite_by_lua*
access_by_lua*、content_by_lua*
header_filter_by_lua*、body_filter_by_lua*
# 示例
ngx.req.set_header(name, "gtlx"):设置单个值
ngx.req.set_header(test, {"1","2"}):使用数组设置多个值
ngx.req.clear_header:删除请求头
语法格式:ngx.req.clear_header(name)
使用环境:set_by_lua*、rewrite_by_lua*
access_by_lua*、content_by_lua*
header_filter_by_lua*、body_filter_by_lua*
# 示例
ngx.req.clear_header(name):直接删除请求头
ngx.req.set_header(test, nil):通过设置为nil,删除请求头
ngx.req.get_headers:获取请求头
语法格式:ngx.req.get_headers(max_headers?, raw?)
使用环境:set_by_lua*、rewrite_by_lua*
access_by_lua*、content_by_lua*
header_filter_by_lua*、body_filter_by_lua*
# 示例
location / {
content_by_lua_block {
local ngx = require "ngx";
local headers = ngx.req.get_headers();
for key,value in pairs(headers) do
print(key .. value)
end
ngx.say(h["name"]) #获取名为name的请求头
#等同于:ngx.var.http_name
}
}
请求体操作
lua_need_request_body:强制获取请求体,默认不读取
语法格式:lua_need