播放框架将播放服务器的http请求发送到"somesite.com"并将响应发送回浏览器

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"的回复发回给浏览器?

mil*_*use 6

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]和你想要做必要等待事情的发生,因为在解释处理异步结果的文档.