如何使用Scala / Akka Http处理多个HTTP头

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Scala / Akka Http处理多个HTTP头相关的知识,希望对你有一定的参考价值。

我是Scala和Akka Http的新手。请原谅这个新手问题。我有以下代码来处理传入的HTTP GET请求:

def  clickRoute():  Route = func1( requestData =>
  pathPrefix(“somewebevents”) {
    parameters(a, b) {
      ( my_a_var, my_b_var) =>
          optionalHeaderValueByName(“Referer”) { refHeaderOpt =>

               // process_logic
          }
    }
 }

代码在处理Referer HTTP头之后在“process_logic”中执行某些操作。我想要做的是它还处理另一个HTTP标头“User-Agent”。我几乎想把两者连在一起,抓住Referer和User-Agent。

我一直在使用语法,并且找不到可以获取多个HTTP标头然后继续“process_logic”的方法。

任何提示非常感谢。

答案

使用默认指令,您可以使用extractRequest

extractRequest { request =>
  val headers: Seq[HttpHeader] = request.headers
  // fetch the headers you need for processing
}

如果您需要这样做,经常实现自定义指令也是一种选择。

以上是关于如何使用Scala / Akka Http处理多个HTTP头的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AKKA-HTTP、spray-json、oauth2 和 slick 优化 scala REST api?

AKKA | Hello AKKA

如何使用 scala 2.9.x 运行 akka 2.1-snapshots?

Scala-Unit7-Scala并发编程模型AKKA

一 Akka学习 - actor

Akka实现WordCount(Scala)