scala playframework发生错误时,如何从HttpErrorHandler部分获取post参数值?

How can I get the post parameter value from the HttpErrorHandler part when an error occurs in scala playframework?

我处于Scala入门阶段

playframework 版本为 2.8.2

(1) 如下,post方法通过包含json格式的参数请求api。

(2)如果出现错误,在下面ErrorHandler.scala的代码中

def onDevServerError 函数被执行,结果被 returned 为 Json 格式,如下所示。

这就是问题所在。

在我return错误的结果之前,

我需要通过获取调用 api 时发送的 post 参数的值来执行一些操作。 (我需要 groupId 和 jobId 值)

怎么....???

我用谷歌搜索了很多,但找不到答案。

请帮帮我。

03-17 注入控制器组件不起作用

也许我错了...

首先你需要将 play.api.mvc.PlayBodyParsers 注入你的处理程序,比如

class ErrorHandler @Inject(..., parsers: PlayBodyParsers) extends ...

然后声明两个需要解析的字段:

implicit val materializer = Materializer(ActorSystem("handler-system"))
implicit val ec = controllerComponents.executionContext

然后为了解析传入的 POST 请求,例如:

   if(request.method == "POST") {
      for {
        parsedBody <- parsers.json.apply(request).run
        response <- parsedBody match {
          case Left(value) => //failed to parse body as json
          case Right(json) => //here goes you logic of body handling
        }
      } yield response
    }