json Apache pekko(akka http)-从请求中提取的字符串主体没有引号

yqkkidmi  于 4个月前  发布在  Apache
关注(0)|答案(1)|浏览(96)

我正在为我的下一个项目POCing pekko http(akka http)。我从请求主体实体中提取了JSON字符串,但它没有在字符串值上引用。
路由器上的代码片段:

post {
    path("account") {
      extract(_.request) { request =>
        val body = Await.result(request.entity.toStrict(1.second).map(_.data.utf8String), 1.second)
        println(body)
        complete(...)
      }
    }
  }

字符串
请求:curl -X POST http://localhost:9090/account-d '{“account”:{“name”:“TESTE”}}'
提取的json字符串:{account:{name:TESTE}}
有人知道如何在不删除引号的情况下提取请求体实体吗?

7rfyedvj

7rfyedvj1#

没有什么能阻止你这样做,但是在使用akka-http时,使用Await阻塞并不是一个好的做法。这也会提取原始JSON字符串而不删除引号:

val jsonRaw: Route =
  path("jsonRaw")(
    post(
      entity(as[String]) {
        json =>
          println("JSON raw: " + json)
          complete(StatusCodes.OK)
      }
    )
  )

字符串
示例:https://github.com/pbernet/akka_streams_tutorial/blob/70e52e6e769a2779f1a6de744aab3cf4f16a3835/src/main/scala/akkahttp/SampleRoutes.scala#L121
要检查服务器上的请求,您可以在application.conf中设置这些参数,以检测env问题。

pekko {
  loglevel = "DEBUG"
  http.server.log-unencrypted-network-bytes = 100
  ...
  }

相关问题