Scala 使用akka路由dsl获取http头
我是Scala的新手,这个问题让我很沮丧。如何从请求中获取所有标题Scala 使用akka路由dsl获取http头,scala,akka,akka-http,Scala,Akka,Akka Http,我是Scala的新手,这个问题让我很沮丧。如何从请求中获取所有标题 val route = { path("lol") { //get httpHeaders complete(HttpResponse()) } } 您在此处至少有两个选项: a) 使用extractRequest指令: val route = { path("example") { extractRequest { request => request.headers
val route = {
path("lol") {
//get httpHeaders
complete(HttpResponse())
}
}
您在此处至少有两个选项: 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(...)
}
}
还有一系列与标题相关的指令,如
headerValueByName
或optionalHeaderValueByName
。您可以找到详细信息。指令extractRequest
可能是不必手动定义路由就可以获取标题的最直接的方法。@RüdigerKlaehn:谢谢!我已经扩展了我的答案;)Imho应该有path(){get{ctx=>}
才能编译为什么Seq而不是Map?