使用akka路由dsl获取http标头

时间:2016-05-23 20:30:53

标签: scala akka akka-http

我是Scala的新手,这个问题让我感到沮丧。如何从请求中获取所有标题?

val route =  {
  path("lol") {
    //get httpHeaders
    complete(HttpResponse())
  }
}

1 个答案:

答案 0 :(得分:19)

这里至少有两个选项:

a)使用extractRequest指令:

val route = {
  path("example") {
    extractRequest { request =>
      request.headers // Returns `Seq[HttpHeader]`; do anything you want here
      complete(HttpResponse())
    }
  }
}

b)明确访问RequestContext

val route =  {
  path("example") { ctx =>
    ctx.request.headers // Returns `Seq[HttpHeader]`; do anything you want here
    ctx.complete(...)
  }
}

还有一整套与标题相关的指令,例如headerValueByNameoptionalHeaderValueByName。您可以找到详细信息here