By Alvin Alexander. Last updated: June 4, 2016
There are times when you’re debugging a Play Framework controller that you’ll want to print certain information, such as the request content-type, headers, content body, and query string. As a quick example, the code below shows how to print this information from a Play Framework controller method:
/**
* The Sencha client will send me id, symbol, and companyName in a POST request.
* I need to return something like this on success:
* { "success" : true, "msg" : "", "id" : 100 }
*/
def add = Action { implicit request =>
// print the request debug information
println(s"*** content-type: ${request.contentType}")
println(s"*** headers: ${request.headers}")
println(s"*** body: ${request.body}")
println(s"*** query string: ${request.rawQueryString}")
transactionForm.bindFromRequest.fold(
errors => {
Ok(Json.toJson(Map("success" -> toJson(false), "msg" -> toJson("Boom!"), "id" -> toJson(0))))
},
transaction => {
println("*** CAME TO TRANSACTION > Fold > Transaction/Success ***")
val id = Transaction.insert(transaction)
id match {
case Some(autoIncrementId) =>
Ok(Json.toJson(Map("success" -> toJson(true), "msg" -> toJson("Success!"), "id" -> toJson(autoIncrementId))))
case None =>
Ok(Json.toJson(Map("success" -> toJson(true), "msg" -> toJson("Success!"), "id" -> toJson(-1))))
}
}
)
}

