Lua body_data() 返回为 nil 即使请求体不为空

我正在尝试使用 Lua 代码从 Github Webhook 获取有效负载。

我能够获取并查看请求中的所有标头,但是当我请求 body_data() 时,内容为空,尽管它不为空。

也许我应该调用除 body_data() 以外的其他东西来获取有效负载,但是我在网上找不到其他任何东西。

这是我的 Lua 代码:

local method = ngx.var.request_method
local headers = ngx.req.get_headers()

if method == "POST" then
   ngx.req.read_body()
   local body_data = ngx.req.get_body_data()
   ngx.print(body_data)

   local sha = headers['X-Hub-Signature-256']
end

它输出 "nil"。Webhook 负载大约有 100 行文件。那么为什么会发生这种情况?

如果我打印 "sha" 变量,我会看到结果。 只有对于正文我没有看到任何结果。

请咨询,谢谢。

点赞