org.springframework.http.client

## Class AbstractClientHttpRequest

- java.lang.Object
- - org.springframework.http.client.AbstractClientHttpRequest

All Implemented Interfaces:
  ClientHttpRequest, HttpMessage, HttpOutputMessage, HttpRequest

    public abstract class AbstractClientHttpRequest
    extends Object
    implements ClientHttpRequest

Abstract base for `ClientHttpRequest` that makes sure that headers and body are not written multiple times.

Since:
  3.0
Author:
  Arjen Poutsma

### Constructor Summary

Constructors
Constructor and Description
`AbstractClientHttpRequest()`

### Method Summary

Methods
`ClientHttpResponse` `execute()` Execute this request, resulting in a `ClientHttpResponse` that can be read.
`protected abstract ClientHttpResponse` `executeInternal(HttpHeaders headers)` Abstract template method that writes the given headers and content to the HTTP request.
`OutputStream` `getBody()` Return the body of the message as an output stream.
`protected abstract OutputStream` `getBodyInternal(HttpHeaders headers)` Abstract template method that returns the body.
`HttpHeaders` `getHeaders()` Return the headers of this message.

### 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.HttpRequest

`getMethod, getURI`

### Constructor Detail

#### AbstractClientHttpRequest

    public AbstractClientHttpRequest()

### Method Detail

#### getHeaders

    public final HttpHeaders getHeaders()

Description copied from interface: `HttpMessage`
Return the headers of this message.

Specified by:
  `getHeaders` in interface `HttpMessage`
Returns:
  a corresponding HttpHeaders object

#### getBody

    public final OutputStream getBody()
                               throws IOException

Description copied from interface: `HttpOutputMessage`
Return the body of the message as an output stream.

Specified by:
  `getBody` in interface `HttpOutputMessage`
Returns:
  the output stream body
Throws:
  `IOException` - in case of I/O Errors

#### execute

    public final ClientHttpResponse execute()
                                     throws IOException

Description copied from interface: `ClientHttpRequest`
Execute this request, resulting in a `ClientHttpResponse` that can be read.

Specified by:
  `execute` in interface `ClientHttpRequest`
Returns:
  the response result of the execution
Throws:
  `IOException` - in case of I/O errors

#### getBodyInternal

    protected abstract OutputStream getBodyInternal(HttpHeaders headers)
                                             throws IOException

Abstract template method that returns the body.

Parameters:
  `headers` - the HTTP headers
Returns:
  the body output stream
Throws:
  `IOException`

#### executeInternal

    protected abstract ClientHttpResponse executeInternal(HttpHeaders headers)
                                                   throws IOException

Abstract template method that writes the given headers and content to the HTTP request.

Parameters:
  `headers` - the HTTP headers
Returns:
  the response object for the executed request
Throws:
  `IOException`