类 FormHttpMessageWriter

java.lang.Object
cn.taketoday.http.codec.LoggingCodecSupport
cn.taketoday.http.codec.FormHttpMessageWriter
所有已实现的接口:
HttpMessageWriter<cn.taketoday.util.MultiValueMap<String,String>>

public class FormHttpMessageWriter extends LoggingCodecSupport implements HttpMessageWriter<cn.taketoday.util.MultiValueMap<String,String>>
HttpMessageWriter for writing a MultiValueMap<String, String> as HTML form data, i.e. "application/x-www-form-urlencoded", to the body of a request.

Note that unless the media type is explicitly set to MediaType.APPLICATION_FORM_URLENCODED, the canWrite(cn.taketoday.core.ResolvableType, cn.taketoday.http.MediaType) method will need generic type information to confirm the target map has String values. This is because a MultiValueMap with non-String values can be used to write multipart requests.

To support both form data and multipart requests, consider using MultipartHttpMessageWriter configured with this writer as the fallback for writing plain form data.

从以下版本开始:
4.0
作者:
Sebastien Deleuze, Rossen Stoyanchev
另请参阅:
  • 字段详细资料

    • DEFAULT_CHARSET

      public static final Charset DEFAULT_CHARSET
      The default charset used by the writer.
    • DEFAULT_FORM_DATA_MEDIA_TYPE

      private static final MediaType DEFAULT_FORM_DATA_MEDIA_TYPE
    • MEDIA_TYPES

      private static final List<MediaType> MEDIA_TYPES
    • MULTIVALUE_TYPE

      private static final cn.taketoday.core.ResolvableType MULTIVALUE_TYPE
    • defaultCharset

      private Charset defaultCharset
  • 构造器详细资料

    • FormHttpMessageWriter

      public FormHttpMessageWriter()
  • 方法详细资料

    • setDefaultCharset

      public void setDefaultCharset(Charset charset)
      Set the default character set to use for writing form data when the response 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.
    • getWritableMediaTypes

      public List<MediaType> getWritableMediaTypes()
      从接口复制的说明: HttpMessageWriter
      Return the list of media types supported by this Writer. 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 HttpMessageWriter.getWritableMediaTypes(ResolvableType) for a more precise list.
      指定者:
      getWritableMediaTypes 在接口中 HttpMessageWriter<cn.taketoday.util.MultiValueMap<String,String>>
      返回:
      the general list of supported media types
    • canWrite

      public boolean canWrite(cn.taketoday.core.ResolvableType elementType, @Nullable MediaType mediaType)
      从接口复制的说明: HttpMessageWriter
      Whether the given object type is supported by this writer.
      指定者:
      canWrite 在接口中 HttpMessageWriter<cn.taketoday.util.MultiValueMap<String,String>>
      参数:
      elementType - the type of object to check
      mediaType - the media type for the write (possibly null)
      返回:
      true if writable, false otherwise
    • write

      public reactor.core.publisher.Mono<Void> write(org.reactivestreams.Publisher<? extends cn.taketoday.util.MultiValueMap<String,String>> inputStream, cn.taketoday.core.ResolvableType elementType, @Nullable MediaType mediaType, ReactiveHttpOutputMessage message, Map<String,Object> hints)
      从接口复制的说明: HttpMessageWriter
      Write an given stream of object to the output message.
      指定者:
      write 在接口中 HttpMessageWriter<cn.taketoday.util.MultiValueMap<String,String>>
      参数:
      inputStream - the objects to write
      elementType - the type of objects in the stream which must have been previously checked via HttpMessageWriter.canWrite(ResolvableType, MediaType)
      mediaType - the content type for the write (possibly null to indicate that the default content type of the writer must be used)
      message - the message to write to
      hints - additional information about how to encode and write
      返回:
      indicates completion or error
    • getMediaType

      protected MediaType getMediaType(@Nullable MediaType mediaType)
    • logFormData

      private void logFormData(cn.taketoday.util.MultiValueMap<String,String> form, Map<String,Object> hints)
    • serializeForm

      protected String serializeForm(cn.taketoday.util.MultiValueMap<String,String> formData, Charset charset)