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