【问题标题】:Echo simple HTTP server with Akka Http in Scala在 Scala 中使用 Akka Http 回显简单的 HTTP 服务器
【发布时间】:2017-03-02 07:29:28
【问题描述】:

我正在使用 Scala 中的 Akka-Http 开发一个简单的 HTTP 服务器。

我的代码如下:

object HttpServer extends App {
    override def main(args: Array[String]): Unit = {

      implicit val system = ActorSystem("my-system")
      implicit val materializer = ActorMaterializer()

      implicit val executionContext = system.dispatcher

      val route : Route = post {
          path("echo") {
              val json = ???
              complete((StatusCodes.OK, json))
          }
      }

      val bindingFuture = Http().bindAndHandle(route, "localhost", 8080)

      println(s"Server online at http://localhost:8080/\nPress RETURN to stop...")
      StdIn.readLine()
      bindingFuture.flatMap(_.unbind())
      port.onComplete(_ => system.terminate())
    }
}

我还不够了解 Scala。为此,我需要一些帮助。

我不知道如何从 Http POST 正文中获取 JSON 以将该 json 返还给客户端。

【问题讨论】:

标签: scala akka akka-http


【解决方案1】:

您只需要在路由定义中添加一个提取器:

  val route : Route = post {
    path("echo") {
      entity(as[String]) { json =>    
        complete(json)
      }
  }

请注意,您不需要显式设置状态码,因为当您将值传递给complete时,akka-http 会自动为您设置状态 200 OK

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    相关资源
    最近更新 更多