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 格式,如下所示。
ErrorHandler.scala
结果return
这就是问题所在。
在我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
}
我处于Scala入门阶段
playframework 版本为 2.8.2
(1) 如下,post方法通过包含json格式的参数请求api。
(2)如果出现错误,在下面ErrorHandler.scala的代码中
def onDevServerError 函数被执行,结果被 returned 为 Json 格式,如下所示。
ErrorHandler.scala
结果return
这就是问题所在。
在我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
}