Bou*_*rne 3 scala playframework scala-2.10 playframework-2.2
我正在使用scala中的Play框架开发一个应用程序.我必须在我的应用程序中处理以下用例.
对于从浏览器到播放服务器的特定请求,Play服务器应向某个外部服务器发出http请求(对于例如:somesite.com),并将该请求的响应发送回Web浏览器.
我编写了以下代码,将请求发送到控制器中的外部设备.
val holder = WS.url("http://somesite.com")
val futureResponse = holder.get
Run Code Online (Sandbox Code Playgroud)
现在我如何将收到的"somesite.com"的回复发回给浏览器?
WS中的Play文档中有一个示例,在控制器中使用 ; 我已根据您的情况调整了它:
def showSomeSiteContent = Action.async {
WS.url("http://somesite.com").get().map { response =>
Ok(response.body)
}
}
Run Code Online (Sandbox Code Playgroud)
要注意的关键一点是习惯使用map()的Future是你从后面get调用-这里面的代码map,一旦块将被执行Future已成功完成.
在Action.async"包装"讲述了游戏的框架,你会返回一个Future[Response]和你想要它做必要等待事情的发生,因为在解释处理异步结果的文档.