Package org.springframework.http.codec

# Class FormHttpMessageReader

java.lang.Object
org.springframework.http.codec.LoggingCodecSupport
org.springframework.http.codec.FormHttpMessageReader

All Implemented Interfaces:
  `HttpMessageReader<org.springframework.util.MultiValueMap<String,String>>`

public class FormHttpMessageReader extends LoggingCodecSupport implements HttpMessageReader<org.springframework.util.MultiValueMap<String,String>>
Implementation of an `HttpMessageReader` to read HTML form data, i.e. request body with media type `"application/x-www-form-urlencoded"`.

Since:
  5.0
Author:
  Sebastien Deleuze, Rossen Stoyanchev

## Field Summary

Fields
Modifier and Type
Field
Description
`static final Charset`
`DEFAULT_CHARSET`
The default charset used by the reader.

### Fields inherited from class org.springframework.http.codec.LoggingCodecSupport

`logger`

## Constructor Summary

Constructors
Constructor
Description
`FormHttpMessageReader()`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`canRead(org.springframework.core.ResolvableType elementType, MediaType mediaType)`
Whether the given object type is supported by this reader.
`Charset`
`getDefaultCharset()`
Return the configured default charset.
`int`
`getMaxInMemorySize()`
Return the `configured` byte count limit.
`List<MediaType>`
`getReadableMediaTypes()`
Return the list of media types supported by this reader.
`reactor.core.publisher.Flux<org.springframework.util.MultiValueMap<String,String>>`
`read(org.springframework.core.ResolvableType elementType, ReactiveHttpInputMessage message, Map<String,Object> hints)`
Read from the input message and decode to a stream of objects.
`reactor.core.publisher.Mono<org.springframework.util.MultiValueMap<String,String>>`
`readMono(org.springframework.core.ResolvableType elementType, ReactiveHttpInputMessage message, Map<String,Object> hints)`
Read from the input message and decode to a single object.
`void`
`setDefaultCharset(Charset charset)`
Set the default character set to use for reading form data when the request Content-Type header does not explicitly specify it.
`void`
`setMaxInMemorySize(int byteCount)`
Set the max number of bytes for input form data.

### Methods inherited from class org.springframework.http.codec.LoggingCodecSupport

`isEnableLoggingRequestDetails, setEnableLoggingRequestDetails`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.springframework.http.codec.HttpMessageReader

`getReadableMediaTypes, read, readMono`

## Field Details

### DEFAULT_CHARSET

public static final Charset DEFAULT_CHARSET
The default charset used by the reader.

## Constructor Details

### FormHttpMessageReader

public FormHttpMessageReader()

## Method Details

### setDefaultCharset

public void setDefaultCharset(Charset charset)
Set the default character set to use for reading form data when the request Content-Type header does not explicitly specify it.

By default this is set to "UTF-8".

### getDefaultCharset

public Charset getDefaultCharset()
Return the configured default charset.

### setMaxInMemorySize

public void setMaxInMemorySize(int byteCount)
Set the max number of bytes for input form data. As form data is buffered before it is parsed, this helps to limit the amount of buffering. Once the limit is exceeded, `DataBufferLimitException` is raised.

By default this is set to 256K.

Parameters:
  `byteCount` - the max number of bytes to buffer, or -1 for unlimited
Since:
  5.1.11

### getMaxInMemorySize

public int getMaxInMemorySize()
Return the `configured` byte count limit.

Since:
  5.1.11

### canRead

public boolean canRead(org.springframework.core.ResolvableType elementType, @Nullable MediaType mediaType)
Description copied from interface: `HttpMessageReader`
Whether the given object type is supported by this reader.

Specified by:
  `canRead` in interface `HttpMessageReader<org.springframework.util.MultiValueMap<String,String>>`
Parameters:
  `elementType` - the type of object to check
  `mediaType` - the media type for the read (possibly `null`)
Returns:
  `true` if readable, `false` otherwise

### read

public reactor.core.publisher.Flux<org.springframework.util.MultiValueMap<String,String>> read(org.springframework.core.ResolvableType elementType, ReactiveHttpInputMessage message, Map<String,Object> hints)
Description copied from interface: `HttpMessageReader`
Read from the input message and decode to a stream of objects.

Specified by:
  `read` in interface `HttpMessageReader<org.springframework.util.MultiValueMap<String,String>>`
Parameters:
  `elementType` - the type of objects in the stream which must have been previously checked via `HttpMessageReader.canRead(ResolvableType, MediaType)`
  `message` - the message to read from
  `hints` - additional information about how to read and decode the input
Returns:
  the decoded stream of elements

### readMono

public reactor.core.publisher.Mono<org.springframework.util.MultiValueMap<String,String>> readMono(org.springframework.core.ResolvableType elementType, ReactiveHttpInputMessage message, Map<String,Object> hints)
Description copied from interface: `HttpMessageReader`
Read from the input message and decode to a single object.

Specified by:
  `readMono` in interface `HttpMessageReader<org.springframework.util.MultiValueMap<String,String>>`
Parameters:
  `elementType` - the type of objects in the stream which must have been previously checked via `HttpMessageReader.canRead(ResolvableType, MediaType)`
  `message` - the message to read from
  `hints` - additional information about how to read and decode the input
Returns:
  the decoded object

### getReadableMediaTypes

public List<MediaType> getReadableMediaTypes()
Description copied from interface: `HttpMessageReader`
Return the list of media types supported by this reader. The list may not apply to every possible target element type and calls to this method should typically be guarded via `canWrite(elementType, null)`. The list may also exclude media types supported only for a specific element type. Alternatively, use `HttpMessageReader.getReadableMediaTypes(ResolvableType)` for a more precise list.

Specified by:
  `getReadableMediaTypes` in interface `HttpMessageReader<org.springframework.util.MultiValueMap<String,String>>`
Returns:
  the general list of supported media types