ScalaWS - opensas/Play20Es GitHub Wiki
Esta página todavía no ha sido traducida al castellano. Puedes ayudarnos con la tarea simplemente presionando el botón
Edit Page. Para más información puedes leer esta guía para el traductor. Aquí puedes ver cuánto nos falta para terminar la traducción.
Sometimes we would like to call other HTTP services from within a Play application. Play supports this via its play.api.libs.ws.WS library, which provides a way to make asynchronous HTTP calls.
Any calls made by play.api.libs.ws.WS should return a Promise[play.api.libs.ws.Response] which we can later handle with Play’s asynchronous mechanisms.
To send an HTTP request you start with WS.url() to specify the URL. Then you get a builder that you can use to specify various HTTP options, such as setting headers. You end by calling a final method corresponding to the HTTP method you want to use. For example:
val homePage: Promise[ws.Response] = WS.url("http://mysite.com").get()Or:
val result: Promise[ws.Response] = {
WS.url("http://localhost:9001/post").post("content")
}The call is asynchronous and you need to manipulate it as a Promise[ws.Response] to get the actual content. You can compose several promises and end with a Promise[Result] that can be handled directly by the Play server:
def feedTitle(feedUrl: String) = Action {
Async {
WS.url(feedUrl).get().map { response =>
Ok("Feed title: " + (response.json \ "title").as[String])
}
}
}Next: OpenID Support in Play