繁体   English   中英

Akka-http:如何从请求头中获取 User-Agent 头?

[英]Akka-http: How to get User-Agent header from request header?

我试图从Request-Header提取User-agentRequest-Header ,我试过这个:

 headerValue(extractUserAgent) { userAgent =>

}


def extractUserAgent: HttpHeader => Option[String] = {
    case h: `User-Agent` => Some(h.)
    case x         => None
 }

我被困在Some(h.) ,我想它可能会在那里提供一些字符串值作为User-Agent ,但不是字符串值在它里面。请帮助!!

我终于找到了解决方案

path("test") {
  get {
    headerValueByName("User-Agent") { header =>
      complete(s"""{ "User-Agent" : "${header}" }""")
    }
  }
}

在您的示例中,给出 h 以匹配其中给出的任何现有对象 . 因此,除非User-Agent是与之匹配的对象,否则将无法工作。 您可以按如下方式更新您的代码:

val uaHeader = "User-Agent".toLowerCase
def extractUA: HttpHeader => Option[String] = {
  case HttpHeader(`uaHeader`,value) => Some(value)
  case _         => None
}

我认为你应该阅读文档,它写得很好,你可以在那里找到你的解决方案:

http://doc.akka.io/docs/akka-stream-and-http-experimental/1.0/scala/http/common/http-model.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM