BAEL-3353: Asynchronous HTTP Programming with Play Framework (#8349)
* project creation and added ws library * BAEL-3353: pushing code for article * BAEL-3353: changing test names * BAEL-3353: removed unused imports * BAEL-3353: applied review changes and fixed unit test bug * BAEL-3353: added more examples to PR * BAEL-3353: updated test following feedback * BAEL-3353: add new unit test for large data download * BAEL-3353: fixed PR following feedback
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
package controllers;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import play.mvc.Controller;
|
||||
import play.mvc.Http;
|
||||
import play.mvc.Result;
|
||||
|
||||
/**
|
||||
* This controller contains an action to handle HTTP requests to the application's home page.
|
||||
*/
|
||||
public class HomeController extends Controller {
|
||||
|
||||
/**
|
||||
* An action that renders an HTML page with a welcome message. The configuration in the
|
||||
* <code>routes</code> file means that this method will be called when the application receives
|
||||
* a
|
||||
* <code>GET</code> request with a path of <code>/</code>.
|
||||
*/
|
||||
public Result index(Http.Request request) throws JsonProcessingException {
|
||||
return ok(printStats(request));
|
||||
}
|
||||
|
||||
private String printStats(Http.Request request) throws JsonProcessingException {
|
||||
Map<String, String[]> stringMap = request.body()
|
||||
.asFormUrlEncoded();
|
||||
Map<String, Object> map = ImmutableMap.of(
|
||||
"Result", "ok",
|
||||
"GetParams", request.queryString(),
|
||||
"PostParams", stringMap == null ? Collections.emptyMap() : stringMap,
|
||||
"Headers", request.getHeaders().toMap()
|
||||
);
|
||||
return new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(map);
|
||||
}
|
||||
}
|
||||
5
play-framework/async-http/app/views/index.scala.html
Normal file
5
play-framework/async-http/app/views/index.scala.html
Normal file
@@ -0,0 +1,5 @@
|
||||
@()
|
||||
|
||||
@main("Welcome to Play") {
|
||||
<h1>Welcome to Play!</h1>
|
||||
}
|
||||
24
play-framework/async-http/app/views/main.scala.html
Normal file
24
play-framework/async-http/app/views/main.scala.html
Normal file
@@ -0,0 +1,24 @@
|
||||
@*
|
||||
* This template is called from the `index` template. This template
|
||||
* handles the rendering of the page header and body tags. It takes
|
||||
* two arguments, a `String` for the title of the page and an `Html`
|
||||
* object to insert into the body of the page.
|
||||
*@
|
||||
@(title: String)(content: Html)
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
@* Here's where we render the page title `String`. *@
|
||||
<title>@title</title>
|
||||
<link rel="stylesheet" media="screen" href="@routes.Assets.versioned("stylesheets/main.css")">
|
||||
<link rel="shortcut icon" type="image/png" href="@routes.Assets.versioned("images/favicon.png")">
|
||||
</head>
|
||||
<body>
|
||||
@* And here's where we render the `Html` object containing
|
||||
* the page content. *@
|
||||
@content
|
||||
|
||||
<script src="@routes.Assets.versioned("javascripts/main.js")" type="text/javascript"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user