类 DecoderHttpMessageReader<T>
java.lang.Object
cn.taketoday.http.codec.DecoderHttpMessageReader<T>
- 类型参数:
T- the type of objects in the decoded output stream
- 所有已实现的接口:
HttpMessageReader<T>
- 直接已知子类:
ResourceHttpMessageReader
HttpMessageReader that wraps and delegates to a Decoder.
Also a HttpMessageReader that pre-resolves decoding hints
from the extra information available on the server side such as the request
or controller method parameter annotations.
- 从以下版本开始:
- 4.0
- 作者:
- Arjen Poutsma, Sebastien Deleuze, Rossen Stoyanchev
-
字段概要
字段 -
构造器概要
构造器构造器说明DecoderHttpMessageReader(cn.taketoday.core.codec.Decoder<T> decoder) Create an instance wrapping the givenDecoder. -
方法概要
修饰符和类型方法说明booleanWhether the given object type is supported by this reader.protected MediaTypegetContentType(HttpMessage inputMessage) Determine the Content-Type of the HTTP message based on the "Content-Type" header or otherwise default toMediaType.APPLICATION_OCTET_STREAM.cn.taketoday.core.codec.Decoder<T>Return theDecoderof this reader.Return the list of media types supported by this reader.getReadableMediaTypes(cn.taketoday.core.ResolvableType elementType) Return the list of media types supported by this Reader for the given type of element.getReadHints(cn.taketoday.core.ResolvableType actualType, cn.taketoday.core.ResolvableType elementType, ServerHttpRequest request, ServerHttpResponse response) Get additional hints for decoding for example based on the server request or annotations from controller method parameters.getReadHints(cn.taketoday.core.ResolvableType elementType, ReactiveHttpInputMessage message) Get additional hints for decoding based on the input HTTP message.private static voidinitLogger(cn.taketoday.core.codec.Decoder<?> decoder) reactor.core.publisher.Flux<T>read(cn.taketoday.core.ResolvableType actualType, cn.taketoday.core.ResolvableType elementType, ServerHttpRequest request, ServerHttpResponse response, Map<String, Object> hints) Server-side only alternative toHttpMessageReader.read(ResolvableType, ReactiveHttpInputMessage, Map)with additional context available.reactor.core.publisher.Flux<T>read(cn.taketoday.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<T>readMono(cn.taketoday.core.ResolvableType actualType, cn.taketoday.core.ResolvableType elementType, ServerHttpRequest request, ServerHttpResponse response, Map<String, Object> hints) Server-side only alternative toHttpMessageReader.readMono(ResolvableType, ReactiveHttpInputMessage, Map)with additional, context available.reactor.core.publisher.Mono<T>readMono(cn.taketoday.core.ResolvableType elementType, ReactiveHttpInputMessage message, Map<String, Object> hints) Read from the input message and decode to a single object.
-
字段详细资料
-
decoder
-
mediaTypes
-
-
构造器详细资料
-
DecoderHttpMessageReader
Create an instance wrapping the givenDecoder.
-
-
方法详细资料
-
initLogger
private static void initLogger(cn.taketoday.core.codec.Decoder<?> decoder) -
getDecoder
Return theDecoderof this reader. -
getReadableMediaTypes
从接口复制的说明:HttpMessageReaderReturn 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.- 指定者:
getReadableMediaTypes在接口中HttpMessageReader<T>- 返回:
- the general list of supported media types
-
getReadableMediaTypes
从接口复制的说明:HttpMessageReaderReturn the list of media types supported by this Reader for the given type of element. This list may differ fromHttpMessageReader.getReadableMediaTypes()if the Reader doesn't support the element type, or if it supports it only for a subset of media types.- 指定者:
getReadableMediaTypes在接口中HttpMessageReader<T>- 参数:
elementType- the type of element to read- 返回:
- the list of media types supported for the given class
-
canRead
从接口复制的说明:HttpMessageReaderWhether the given object type is supported by this reader.- 指定者:
canRead在接口中HttpMessageReader<T>- 参数:
elementType- the type of object to checkmediaType- the media type for the read (possiblynull)- 返回:
trueif readable,falseotherwise
-
read
public reactor.core.publisher.Flux<T> read(cn.taketoday.core.ResolvableType elementType, ReactiveHttpInputMessage message, Map<String, Object> hints) 从接口复制的说明:HttpMessageReaderRead from the input message and decode to a stream of objects.- 指定者:
read在接口中HttpMessageReader<T>- 参数:
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- 返回:
- the decoded stream of elements
-
readMono
public reactor.core.publisher.Mono<T> readMono(cn.taketoday.core.ResolvableType elementType, ReactiveHttpInputMessage message, Map<String, Object> hints) 从接口复制的说明:HttpMessageReaderRead from the input message and decode to a single object.- 指定者:
readMono在接口中HttpMessageReader<T>- 参数:
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- 返回:
- the decoded object
-
getContentType
Determine the Content-Type of the HTTP message based on the "Content-Type" header or otherwise default toMediaType.APPLICATION_OCTET_STREAM.- 参数:
inputMessage- the HTTP message- 返回:
- the MediaType, possibly
null.
-
getReadHints
protected Map<String,Object> getReadHints(cn.taketoday.core.ResolvableType elementType, ReactiveHttpInputMessage message) Get additional hints for decoding based on the input HTTP message. -
read
public reactor.core.publisher.Flux<T> read(cn.taketoday.core.ResolvableType actualType, cn.taketoday.core.ResolvableType elementType, ServerHttpRequest request, ServerHttpResponse response, Map<String, Object> hints) 从接口复制的说明:HttpMessageReaderServer-side only alternative toHttpMessageReader.read(ResolvableType, ReactiveHttpInputMessage, Map)with additional context available.- 指定者:
read在接口中HttpMessageReader<T>- 参数:
actualType- the actual type of the target method parameter; for annotated controllers, theResolvableMethodParametercan be accessed viaResolvableType.getSource().elementType- the type of Objects in the output streamrequest- the current requestresponse- the current responsehints- additional information about how to read the body- 返回:
- the decoded stream of elements
-
readMono
public reactor.core.publisher.Mono<T> readMono(cn.taketoday.core.ResolvableType actualType, cn.taketoday.core.ResolvableType elementType, ServerHttpRequest request, ServerHttpResponse response, Map<String, Object> hints) 从接口复制的说明:HttpMessageReaderServer-side only alternative toHttpMessageReader.readMono(ResolvableType, ReactiveHttpInputMessage, Map)with additional, context available.- 指定者:
readMono在接口中HttpMessageReader<T>- 参数:
actualType- the actual type of the target method parameter; for annotated controllers, theResolvableMethodParametercan be accessed viaResolvableType.getSource().elementType- the type of Objects in the output streamrequest- the current requestresponse- the current responsehints- additional information about how to read the body- 返回:
- the decoded stream of elements
-
getReadHints
protected Map<String,Object> getReadHints(cn.taketoday.core.ResolvableType actualType, cn.taketoday.core.ResolvableType elementType, ServerHttpRequest request, ServerHttpResponse response) Get additional hints for decoding for example based on the server request or annotations from controller method parameters. By default, delegate to the decoder if it is an instance ofHttpMessageDecoder.
-