我正在将我的一些 java 代码转换为 scala,我希望能够获取特定的标头并将其作为字符串返回。
在java中我有:
return request().getHeader("myHeader")
我一直无法在 scala 中实现同样的目标。任何帮助将不胜感激!谢谢!
我正在将我的一些 java 代码转换为 scala,我希望能够获取特定的标头并将其作为字符串返回。
在java中我有:
return request().getHeader("myHeader")
我一直无法在 scala 中实现同样的目标。任何帮助将不胜感激!谢谢!
你可以写:
request.get("myHeader").orNull
如果您想要与您的 Java 线基本相同的东西。但你没有!
request.get("myHeader")
返回一个Option[String]
,这是 Scala 鼓励您编写不会引发空指针异常的代码的方式。
您可以通过Option
各种方式处理。例如,如果您想提供默认值:
val h: String = request.get("myHeader").getOrElse("")
或者,如果您想对标头执行某些操作(如果它存在):
request.foreach { h: String => doSomething(h) }
要不就:
request foreach doSomething
有关更多可能性,请参阅此备忘单。
接受的答案不适用于带有 playframework 2.2 的 scala:
request.get("myHeader").getOrElse("")
它给了我以下错误:
值 get 不是 play.api.mvc.Request[play.api.mvc.AnyContent] 的成员
在下面使用
request.headers.get("myHeader").getOrElse("")