Hello!
2014-06-30 18:13 GMT-07:00 方晓陈:
> 在lua代码中,我需要通过lua_ngx_module来批量发送header头,header头个数又不确定,这些头放在一个table里面。而ngx.header.HEADER只是对指定的响应头进行修改,怎么样才能完成这种批量操作呢。期待您的答复,非常感谢~~
>
假设你的 header 相关的数据事先作为一个哈希表类型的 Lua table 放在了 data 这个 Lua 变量,则可以这么写:
local resp_header = ngx.header
for k, v in pairs(data) do
resp_header[k] = v
end
出于效率方面的考虑,最好把你的 header 名、值数据放在一个扁平化的数组类型的 Lua table 里,即 { name1,
value1, name2, value2, ... } 这种形式,这样遍历起来要比遍历哈希表要高效得多:
local resp_header = ngx.header
for i = 1, #data, 2 do
local k = data[i]
local v = data[i + 1]
resp_header[k] = v
end
Best regards,
-agentzh