- java.lang.Object
-
- jdk.incubator.http.HttpResponse<T>
-
- Type Parameters:
T
- the response body type
public abstract class HttpResponse<T> extends Object
Represents a response to aHttpRequest
.
Incubating Feature. Will be removed in a future release.A
HttpResponse
is available when the response status code and headers have been received, and typically after the response body has also been received. This depends on the response body handler provided when sending the request. In all cases, the response body handler is invoked before the body is read. This gives applications an opportunity to decide how to handle the body.Methods are provided in this class for accessing the response headers, and response body.
Response handlers and subscribers
Response bodies are handled at two levels. Application code supplies a response handler (
HttpResponse.BodyHandler
) which may examine the response status code and headers, and which then returns aHttpResponse.BodySubscriber
to actually read (or discard) the body and convert it into some useful Java object type. The handler can return one of the pre-defined subscriber types, or a custom subscriber, or if the body is to be discarded it can calldiscard
and return a subscriber which discards the response body. Static implementations of both handlers and subscribers are provided in BodyHandler and BodySubscriber respectively. In all cases, the handler functions provided are convenience implementations which ignore the supplied status code and headers and return the relevant pre-definedBodySubscriber
.See
HttpResponse.BodyHandler
for example usage.- Since:
- 9
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
HttpResponse.BodyHandler<T>
A handler for response bodies.static interface
HttpResponse.BodySubscriber<T>
A subscriber for response bodies.static interface
HttpResponse.MultiSubscriber<U,T>
A response subscriber for a HTTP/2 multi response.
-
Constructor Summary
Constructors Modifier Constructor Description protected
HttpResponse()
Creates an HttpResponse.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description abstract T
body()
Returns the body.abstract HttpHeaders
headers()
Returns the received response headers.abstract Optional<HttpResponse<T>>
previousResponse()
Returns anOptional
containing the previous intermediate response if one was received.abstract HttpRequest
request()
Returns theHttpRequest
corresponding to this response.abstract SSLParameters
sslParameters()
Returns theSSLParameters
in effect for this response.abstract int
statusCode()
Returns the status code for this response.abstract URI
uri()
Returns theURI
that the response was received from.abstract HttpClient.Version
version()
Returns the HTTP protocol version that was used for this response.
-
-
-
Method Detail
-
statusCode
public abstract int statusCode()
Returns the status code for this response.- Returns:
- the response code
-
request
public abstract HttpRequest request()
Returns theHttpRequest
corresponding to this response.This may not be the original request provided by the caller, for example, if that request was redirected.
- Returns:
- the request
- See Also:
previousResponse()
-
previousResponse
public abstract Optional<HttpResponse<T>> previousResponse()
Returns anOptional
containing the previous intermediate response if one was received. An intermediate response is one that is received as a result of redirection or authentication. If no previous response was received then an emptyOptional
is returned.- Returns:
- an Optional containing the HttpResponse, if any.
-
headers
public abstract HttpHeaders headers()
Returns the received response headers.- Returns:
- the response headers
-
body
public abstract T body()
Returns the body. Depending on the type ofT
, the returned body may represent the body after it was read (such asbyte[]
, orString
, orPath
) or it may represent an object with which the body is read, such as anInputStream
.If this
HttpResponse
was returned from an invocation ofpreviousResponse()
then this method returnsnull
- Returns:
- the body
-
sslParameters
public abstract SSLParameters sslParameters()
Returns theSSLParameters
in effect for this response. Returnsnull
if this is not a HTTPS response.- Returns:
- the SSLParameters associated with the response
-
uri
public abstract URI uri()
Returns theURI
that the response was received from. This may be different from the requestURI
if redirection occurred.- Returns:
- the URI of the response
-
version
public abstract HttpClient.Version version()
Returns the HTTP protocol version that was used for this response.- Returns:
- HTTP protocol version
-
-