Package org.springframework.http.codec
Class FormHttpMessageReader
java.lang.Object
org.springframework.http.codec.LoggingCodecSupport
org.springframework.http.codec.FormHttpMessageReader
- All Implemented Interfaces:
HttpMessageReader<MultiValueMap<String,
String>>
public class FormHttpMessageReader
extends LoggingCodecSupport
implements HttpMessageReader<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 inherited from class org.springframework.http.codec.LoggingCodecSupport
logger
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canRead
(ResolvableType elementType, MediaType mediaType) Whether the given object type is supported by this reader.Return the configured default charset.int
Return theconfigured
byte count limit.Return the list of media types supported by this reader.reactor.core.publisher.Flux<MultiValueMap<String,
String>> read
(ResolvableType elementType, ReactiveHttpInputMessage message, Map<String, Object> hints) Read from the input message and decode to a stream of objects.reactor.core.publisher.Mono<MultiValueMap<String,
String>> readMono
(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
The default charset used by the reader.
-
-
Constructor Details
-
FormHttpMessageReader
public FormHttpMessageReader()
-
-
Method Details
-
setDefaultCharset
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
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 theconfigured
byte count limit.- Since:
- 5.1.11
-
canRead
Description copied from interface:HttpMessageReader
Whether the given object type is supported by this reader.- Specified by:
canRead
in interfaceHttpMessageReader<MultiValueMap<String,
String>> - Parameters:
elementType
- the type of object to checkmediaType
- the media type for the read (possiblynull
)- Returns:
true
if readable,false
otherwise
-
read
public reactor.core.publisher.Flux<MultiValueMap<String,String>> read(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 interfaceHttpMessageReader<MultiValueMap<String,
String>> - Parameters:
elementType
- the type of objects in the stream which must have been previously checked viaHttpMessageReader.canRead(ResolvableType, MediaType)
message
- the message to read fromhints
- additional information about how to read and decode the input- Returns:
- the decoded stream of elements
-
readMono
public reactor.core.publisher.Mono<MultiValueMap<String,String>> readMono(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 interfaceHttpMessageReader<MultiValueMap<String,
String>> - Parameters:
elementType
- the type of objects in the stream which must have been previously checked viaHttpMessageReader.canRead(ResolvableType, MediaType)
message
- the message to read fromhints
- additional information about how to read and decode the input- Returns:
- the decoded object
-
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 viacanWrite(elementType, null)
. The list may also exclude media types supported only for a specific element type. Alternatively, useHttpMessageReader.getReadableMediaTypes(ResolvableType)
for a more precise list.- Specified by:
getReadableMediaTypes
in interfaceHttpMessageReader<MultiValueMap<String,
String>> - Returns:
- the general list of supported media types
-