Package 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 forClientHttpRequest
that makes sure that headers and body are not written multiple times.- Since:
- 3.0
- Author:
- Arjen Poutsma
Constructor Summary
Constructors Constructor Description AbstractClientHttpRequest()
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
assertNotExecuted()
Assert that this request has not been executed yet.ClientHttpResponse
execute()
Execute this request, resulting in aClientHttpResponse
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, getMethodValue, 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 interfaceHttpMessage
- Returns:
- a corresponding HttpHeaders object (never
null
)
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 interfaceHttpOutputMessage
- Returns:
- the output stream body (never
null
) - 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 aClientHttpResponse
that can be read.- Specified by:
execute
in interfaceClientHttpRequest
- Returns:
- the response result of the execution
- Throws:
IOException
- in case of I/O errors
assertNotExecuted
protected void assertNotExecuted()
Assert that this request has not been executed yet.- Throws:
IllegalStateException
- if this request has been executed
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