Akka-http: 如何从请求 header 中获取 User-Agent header?
Akka-http: How to get User-Agent header from request header?
我试图从 Request-Header
中提取 User-agent
header,我试过这个:
headerValue(extractUserAgent) { userAgent =>
}
def extractUserAgent: HttpHeader => Option[String] = {
case h: `User-Agent` => Some(h.)
case x => None
}
我卡在了 Some(h.)
行,我在想它可能会给出一些字符串值作为 User-Agent
那里,但字符串值不在 It.Help 中!!
终于找到解决方法了
path("test") {
get {
headerValueByName("User-Agent") { header =>
complete(s"""{ "User-Agent" : "${header}" }""")
}
}
}
我认为你应该阅读文档,它写得很好,你可以在那里找到你的解决方案:
http://doc.akka.io/docs/akka-stream-and-http-experimental/1.0/scala/http/common/http-model.html
在您的示例中,给出 h 以匹配 </code> 中给出的任何现有对象。因此,除非 <code>User-Agent
是要匹配的对象,否则它将不起作用。您可以按如下方式更新您的代码:
val uaHeader = "User-Agent".toLowerCase
def extractUA: HttpHeader => Option[String] = {
case HttpHeader(`uaHeader`,value) => Some(value)
case _ => None
}
我试图从 Request-Header
中提取 User-agent
header,我试过这个:
headerValue(extractUserAgent) { userAgent =>
}
def extractUserAgent: HttpHeader => Option[String] = {
case h: `User-Agent` => Some(h.)
case x => None
}
我卡在了 Some(h.)
行,我在想它可能会给出一些字符串值作为 User-Agent
那里,但字符串值不在 It.Help 中!!
终于找到解决方法了
path("test") {
get {
headerValueByName("User-Agent") { header =>
complete(s"""{ "User-Agent" : "${header}" }""")
}
}
}
我认为你应该阅读文档,它写得很好,你可以在那里找到你的解决方案:
http://doc.akka.io/docs/akka-stream-and-http-experimental/1.0/scala/http/common/http-model.html
在您的示例中,给出 h 以匹配 </code> 中给出的任何现有对象。因此,除非 <code>User-Agent
是要匹配的对象,否则它将不起作用。您可以按如下方式更新您的代码:
val uaHeader = "User-Agent".toLowerCase
def extractUA: HttpHeader => Option[String] = {
case HttpHeader(`uaHeader`,value) => Some(value)
case _ => None
}