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:

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: