Kong API 网关- 在自定义插件中读取请求体

我正在尝试按照这个链接在自定义插件中读取请求体

local data = kong.request.get_body()
if data then
    kong.log(data)
end

我得到了以下错误

2019/03/14 21:57:55 [error] 14039#0: *45 lua entry thread aborted: runtime error: /usr/local/share/lua/5.1/kong/pdk/private/phases.lua:66: no phase in kong.ctx.core.phase
stack traceback:
coroutine 0:
        [C]: in function 'error'
        /usr/local/share/lua/5.1/kong/pdk/private/phases.lua:66: in function 'check_phase'
        /usr/local/share/lua/5.1/kong/pdk/request.lua:594: in function 'get_body'
        .../Apps/troop/kong/plugins/customlog/handler.lua:72: in function <.../Apps/troop/kong/plugins/customlog/handler.lua:62>, context: ngx.timer, client: 127.0.0.1, server: 0.0.0.0:8000
有谁能帮我了解这里发生的问题?我需要在我的插件中记录请求体

有谁能帮我了解这里发生的问题?我需要在我的插件中记录请求体

点赞
用户3590436
用户3590436

将下面翻译成中文并且保留原本的 markdown 格式

那个调用只能在“rewrite、access”或“admin_api”阶段进行。

看着你的日志输出,你想调用它的上下文是 ngx.timer,但 Kong 没有将它作为上下文的一部分。 (更多信息请参见这里

你可以在一个可调用它的阶段中调用“kong.request.get_body()”,将其存储在临时变量中(使用“kong.ctx.plugin”对象),然后在相应插件的“log”阶段中使用。

2019-04-29 03:14:43