org.springframework.web.client

## Class HttpMessageConverterExtractor<T>

- java.lang.Object
- - org.springframework.web.client.HttpMessageConverterExtractor<T>

- All Implemented Interfaces:
    ResponseExtractor<T>

      public class HttpMessageConverterExtractor<T>
      extends Object
      implements ResponseExtractor<T>

  Response extractor that uses the given entity converters to convert the response into a type `T`.
  Since:
    3.0
  Author:
    Arjen Poutsma
  See Also:
    `RestTemplate`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `HttpMessageConverterExtractor(Class<T> responseType, List<HttpMessageConverter<?>> messageConverters)` Creates a new instance of the `HttpMessageConverterExtractor` with the given response type and message converters.
    `HttpMessageConverterExtractor(Type responseType, List<HttpMessageConverter<?>> messageConverters)` Creates a new instance of the `HttpMessageConverterExtractor` with the given response type and message converters.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `T` | `extractData(ClientHttpResponse response)` Extract data from the given `ClientHttpResponse` and return it.
    `protected boolean` | `hasMessageBody(ClientHttpResponse response)` Indicates whether the given response has a message body.

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

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

- - ### Constructor Detail

    - #### HttpMessageConverterExtractor

          public HttpMessageConverterExtractor(Class<T> responseType,
                                       List<HttpMessageConverter<?>> messageConverters)

      Creates a new instance of the `HttpMessageConverterExtractor` with the given response type and message converters. The given converters must support the response type.

    - #### HttpMessageConverterExtractor

          public HttpMessageConverterExtractor(Type responseType,
                                       List<HttpMessageConverter<?>> messageConverters)

      Creates a new instance of the `HttpMessageConverterExtractor` with the given response type and message converters. The given converters must support the response type.

  - ### Method Detail

    - #### extractData

          public T extractData(ClientHttpResponse response)
                        throws IOException

      Description copied from interface: `ResponseExtractor`
      Extract data from the given `ClientHttpResponse` and return it.
      Specified by:
        `extractData` in interface `ResponseExtractor<T>`
      Parameters:
        `response` - the HTTP response
      Returns:
        the extracted data
      Throws:
        `IOException` - in case of I/O errors

    - #### hasMessageBody

          protected boolean hasMessageBody(ClientHttpResponse response)
                                    throws IOException

      Indicates whether the given response has a message body.

      Default implementation returns `false` for a response status of `204` or `304`, or a `Content-Length` of `0`.

      Parameters:
        `response` - the response to check for a message body
      Returns:
        `true` if the response has a body, `false` otherwise
      Throws:
        `IOException` - in case of I/O errors