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)))) } } ) }