title: Request.params is gone in Play Framework 2.0
body: <p>Is there a way to access all request parameters, regardless of HTTP method? I have poured over the documentation and the api without finding a way in Play Framework 2.0.</p>
  
  <p>I have a search on a site that accepts POST and GET. The custom tracking on the site examines all parameters passed in to determine the correct way to store tracking data.</p>
  
  <p>In the Play Framework 1.2.x, I was able to access parameters from a request in a Controller with</p>
  
  <pre class="lang-java prettyprint-override"><code>request.params.get("keywords")
  request.params.get("location") 
  request.params.all()
  </code></pre>
  
  <p>With Play Framework 2.0, this is no longer the case. The <a href="http://www.playframework.org/documentation/api/2.0/scala/index.html#play.api.mvc.Request">Request</a> no longer has the method <code>params</code>, only <code>queryString</code> and queryString only works with GET and not POST. </p>
  
  <p>It is not feasible to define every single possible tracking parameter into the Controller Action, they are dynamic. </p>
  
  <hr>
  
  <p><strong>UPDATE</strong>: A possible work around is using <a href="http://www.playframework.org/documentation/2.0/ScalaBodyParsers">Body Parsers</a>.</p>
  
  <p>Depending on the content type of the request, the appropriate parser is used, e.g. <em>application/form-url-encoded</em> vs <em>application/json</em> </p>
  
  <p>This is the crude Map that combines POST parameters and GET parameters, with GET parameters taking precedence.</p>
  
  <pre class="lang-java prettyprint-override"><code>val params: collection.mutable.Map[String, Seq[String]] = collection.mutable.Map() 
  params ++= request.body.asFormUrlEncoded.getOrElse[Map[String, Seq[String]]] { Map.empty } 
  params ++= request.queryString 
  </code></pre>