Packages

trait PlayBodyParsers extends BodyParserUtils

Body parsers officially supported by Play (i.e. built-in to Play)

Source
BodyParsers.scala
Linear Supertypes
BodyParserUtils, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PlayBodyParsers
  2. BodyParserUtils
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. def DefaultAllowEmptyFileUploads: Boolean

    If empty file uploads are allowed (no matter if filename or file is empty)

    If empty file uploads are allowed (no matter if filename or file is empty)

    You can configure it in application.conf:

    play.http.parser.allowEmptyFiles = true
  2. def DefaultMaxDiskLength: Long

    Default max length allowed for disk based body.

    Default max length allowed for disk based body.

    You can configure it in application.conf:

    play.http.parser.maxDiskBuffer = 512k
  3. def DefaultMaxTextLength: Long

    Default max length allowed for text based body.

    Default max length allowed for text based body.

    You can configure it in application.conf:

    play.http.parser.maxMemoryBuffer = 100k
  4. val UNLIMITED: Long

    Unlimited size.

  5. def anyContent(maxLength: Option[Long]): BodyParser[AnyContent]

    Guess the body content by checking the Content-Type header.

  6. def anyContent: BodyParser[AnyContent]

    Guess the body content by checking the Content-Type header.

  7. def byteString: BodyParser[ByteString]

    Buffer the body as a simple org.apache.pekko.util.ByteString.

    Buffer the body as a simple org.apache.pekko.util.ByteString.

    Will buffer up to the configured max memory buffer amount, after which point, it will return an EntityTooLarge HTTP response.

  8. def byteString(maxLength: Long): BodyParser[ByteString]

    Buffer the body as a simple org.apache.pekko.util.ByteString.

    Buffer the body as a simple org.apache.pekko.util.ByteString.

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

  9. def default(maxLength: Option[Long]): BodyParser[AnyContent]

    If the request has a body, parse the body content by checking the Content-Type header.

  10. def default: BodyParser[AnyContent]

    If the request has a body, parse the body content by checking the Content-Type header.

  11. def defaultBodyParser: BodyParser[AnyContent]
  12. def empty: BodyParser[Unit]

    Don't parse the body content.

    Don't parse the body content.

    Definition Classes
    BodyParserUtils
  13. def error[A](result: Future[Result]): BodyParser[A]

    A body parser that always returns an error.

    A body parser that always returns an error.

    Definition Classes
    BodyParserUtils
  14. def file(to: File): BodyParser[File]

    Store the body content into a file.

    Store the body content into a file.

    to

    The file used to store the content.

  15. def file(to: File, maxLength: Long): BodyParser[File]

    Store the body content into a file.

    Store the body content into a file.

    to

    The file used to store the content.

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

  16. def flatten[A](underlying: Future[BodyParser[A]])(implicit ec: ExecutionContext, mat: Materializer): BodyParser[A]

    A body parser that flattens a future BodyParser.

    A body parser that flattens a future BodyParser.

    Definition Classes
    BodyParserUtils
  17. def form[A](form: Form[A], maxLength: Option[Long] = None, onErrors: (Form[A]) => Result = (_: Form[A]) => Results.BadRequest): BodyParser[A]

    Parse the body and binds it to a given form model.

    Parse the body and binds it to a given form model.

    case class User(name: String)
    
    val userForm: Form[User] = Form(mapping("name" -> nonEmptyText)(User.apply)(User.unapply))
    
    Action(parse.form(userForm)) { request =>
      Ok(s"Hello, ${request.body.name}!")
    }
    form

    Form model

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response. If None, the default play.http.parser.maxMemoryBuffer configuration value is used.

    onErrors

    The result to reply in case of errors during the form binding process

  18. def formBinding(maxChars: Long = DefaultMaxTextLength, maxDepth: Int = Form.FromJsonMaxDepth): FormBinding
  19. def formUrlEncoded: BodyParser[Map[String, Seq[String]]]

    Parse the body as form url encoded if the Content-Type is application/x-www-form-urlencoded.

  20. def formUrlEncoded(maxLength: Long): BodyParser[Map[String, Seq[String]]]

    Parse the body as form url encoded if the Content-Type is application/x-www-form-urlencoded.

    Parse the body as form url encoded if the Content-Type is application/x-www-form-urlencoded.

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

  21. def ignore[A](body: A): BodyParser[A]
    Definition Classes
    BodyParserUtils
  22. def json[A](implicit reader: Reads[A]): BodyParser[A]

    Parse the body as Json if the Content-Type is text/json or application/json, validating the result with the Json reader.

    Parse the body as Json if the Content-Type is text/json or application/json, validating the result with the Json reader.

    A

    the type to read and validate from the body.

    reader

    a Json reader for type A.

  23. def json: BodyParser[JsValue]

    Parse the body as Json if the Content-Type is text/json or application/json.

  24. def json(maxLength: Long): BodyParser[JsValue]

    Parse the body as Json if the Content-Type is text/json or application/json.

    Parse the body as Json if the Content-Type is text/json or application/json.

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

  25. def maxLength[A](maxLength: Long, parser: BodyParser[A])(implicit mat: Materializer): BodyParser[Either[MaxSizeExceeded, A]]

    Wrap an existing BodyParser with a maxLength constraints.

    Wrap an existing BodyParser with a maxLength constraints.

    maxLength

    The max length allowed

    parser

    The BodyParser to wrap

    Definition Classes
    BodyParserUtils
  26. def multipartFormData[A](filePartHandler: FilePartHandler[A], maxLength: Long = DefaultMaxDiskLength, allowEmptyFiles: Boolean = DefaultAllowEmptyFileUploads): BodyParser[MultipartFormData[A]]

    Parse the content as multipart/form-data

    Parse the content as multipart/form-data

    filePartHandler

    Handles file parts.

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

    allowEmptyFiles

    If empty file uploads are allowed (no matter if filename or file is empty)

    See also

    DefaultMaxDiskLength

    Results.EntityTooLarge

  27. def multipartFormData(maxLength: Long, allowEmptyFiles: Boolean): BodyParser[MultipartFormData[TemporaryFile]]

    Parse the content as multipart/form-data

    Parse the content as multipart/form-data

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

    allowEmptyFiles

    If empty file uploads are allowed (no matter if filename or file is empty)

  28. def multipartFormData(allowEmptyFiles: Boolean): BodyParser[MultipartFormData[TemporaryFile]]

    Parse the content as multipart/form-data

    Parse the content as multipart/form-data

    allowEmptyFiles

    If empty file uploads are allowed (no matter if filename or file is empty)

  29. def multipartFormData(maxLength: Long): BodyParser[MultipartFormData[TemporaryFile]]

    Parse the content as multipart/form-data

    Parse the content as multipart/form-data

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

  30. def multipartFormData: BodyParser[MultipartFormData[TemporaryFile]]

    Parse the content as multipart/form-data

  31. def raw: BodyParser[RawBuffer]

    Store the body content in a RawBuffer.

  32. def raw(memoryThreshold: Long = DefaultMaxTextLength, maxLength: Long = DefaultMaxDiskLength): BodyParser[RawBuffer]

    Store the body content in a RawBuffer.

    Store the body content in a RawBuffer.

    memoryThreshold

    If the content size is bigger than this limit, the content is stored as file.

    See also

    DefaultMaxDiskLength

    Results.EntityTooLarge

  33. def temporaryFile: BodyParser[TemporaryFile]

    Store the body content into a temporary file.

  34. def temporaryFile(maxLength: Long): BodyParser[TemporaryFile]

    Store the body content into a temporary file.

    Store the body content into a temporary file.

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

  35. def text: BodyParser[String]

    Parse the body as text if the Content-Type is text/plain.

  36. def text(maxLength: Long): BodyParser[String]

    Parse the body as text if the Content-Type is text/plain.

    Parse the body as text if the Content-Type is text/plain.

    If the charset is not explicitly declared, then the default "charset" parameter value is US-ASCII, per https://tools.ietf.org/html/rfc6657#section-4. Use tolerantText if more flexible character decoding is desired.

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

  37. def tolerantFormUrlEncoded: BodyParser[Map[String, Seq[String]]]

    Parse the body as form url encoded without checking the Content-Type.

  38. def tolerantFormUrlEncoded(maxLength: Long): BodyParser[Map[String, Seq[String]]]

    Parse the body as Form url encoded without checking the Content-Type.

    Parse the body as Form url encoded without checking the Content-Type.

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

  39. def tolerantJson[A](implicit reader: Reads[A]): BodyParser[A]

    Parse the body as Json without checking the Content-Type, validating the result with the Json reader.

    Parse the body as Json without checking the Content-Type, validating the result with the Json reader.

    A

    the type to read and validate from the body.

    reader

    a Json reader for type A.

  40. def tolerantJson: BodyParser[JsValue]

    Parse the body as Json without checking the Content-Type.

  41. def tolerantJson(maxLength: Long): BodyParser[JsValue]

    Parse the body as Json without checking the Content-Type.

    Parse the body as Json without checking the Content-Type.

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

  42. def tolerantText: BodyParser[String]

    Parse the body as text without checking the Content-Type.

  43. def tolerantText(maxLength: Long): BodyParser[String]

    Parses the body as text without checking the Content-Type.

    Parses the body as text without checking the Content-Type.

    Will attempt to parse content with an explicit charset, but will fallback to UTF-8, ISO-8859-1, and finally US-ASCII if incorrect characters are detected.

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

  44. def tolerantXml: BodyParser[NodeSeq]

    Parse the body as Xml without checking the Content-Type.

  45. def tolerantXml(maxLength: Long): BodyParser[NodeSeq]

    Parse the body as Xml without checking the Content-Type.

    Parse the body as Xml without checking the Content-Type.

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

  46. def using[A](f: (RequestHeader) => BodyParser[A]): BodyParser[A]

    Allows to choose the right BodyParser parser to use by examining the request headers.

    Allows to choose the right BodyParser parser to use by examining the request headers.

    Definition Classes
    BodyParserUtils
  47. def when[A](predicate: (RequestHeader) => Boolean, parser: BodyParser[A], badResult: (RequestHeader) => Future[Result]): BodyParser[A]

    Creates a conditional BodyParser.

    Creates a conditional BodyParser.

    Definition Classes
    BodyParserUtils
  48. def xml: BodyParser[NodeSeq]

    Parse the body as Xml if the Content-Type is application/xml, text/xml or application/XXX+xml.

  49. def xml(maxLength: Long): BodyParser[NodeSeq]

    Parse the body as Xml if the Content-Type is application/xml, text/xml or application/XXX+xml.

    Parse the body as Xml if the Content-Type is application/xml, text/xml or application/XXX+xml.

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

Deprecated Value Members

  1. def multipartFormData[A](filePartHandler: FilePartHandler[A], maxLength: Long): BodyParser[MultipartFormData[A]]

    Parse the content as multipart/form-data

    Parse the content as multipart/form-data

    filePartHandler

    Handles file parts.

    maxLength

    Max length (in bytes) allowed or returns EntityTooLarge HTTP response.

    Annotations
    @deprecated
    Deprecated

    (Since version 2.9.0) Use the overloaded multipartFormData method that takes the allowEmptyFiles flag

    See also

    DefaultMaxDiskLength

    Results.EntityTooLarge