首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kong API网关-自定义插件中的读取请求体

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

Stack Overflow用户
提问于 2019-03-14 16:44:14
回答 1查看 2.2K关注 0票数 1

我正试图通过遵循这个url来读取自定义插件中的请求体

代码语言:javascript
复制
  local data = kong.request.get_body()
  if data then
      kong.log(data)
  end

我收到以下错误

代码语言:javascript
复制
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
Can anyone help me understand the problem here? I need to log the request body in my plugin.

有人能帮我理解这里的问题吗?

我需要在插件中记录请求体。

EN

回答 1

Stack Overflow用户

发布于 2019-04-29 03:14:43

该调用只能在“重写、访问或admin_api”阶段调用。

查看您的日志输出,您试图调用的上下文是ngx.timer,它甚至没有被Kong包装为其上下文之一。(关于该这里的更多信息)

您可以做的是在一个可以调用它的阶段中调用"kong.request.get_body()“,将其存储在临时变量中(使用"kong.ctx.plugin”对象),然后将其用于上述插件的“日志”阶段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55167907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档