public final class MetricCollectingHttpResponseHandler<T> extends Object implements HttpResponseHandler<T>
HttpResponseHandler
that publishes the time it took to execute {Modifier and Type | Field and Description |
---|---|
HttpResponseHandler<T> |
delegateToTime |
SdkMetric<? super Duration> |
metric |
X_AMZ_ID_2_HEADER, X_AMZN_REQUEST_ID_HEADER, X_AMZN_REQUEST_ID_HEADER_ALTERNATE, X_AMZN_REQUEST_ID_HEADERS
Modifier and Type | Method and Description |
---|---|
static <T> MetricCollectingHttpResponseHandler<T> |
create(SdkMetric<? super Duration> durationMetric,
HttpResponseHandler<T> delegateToTime) |
T |
handle(SdkHttpFullResponse response,
ExecutionAttributes executionAttributes)
Accepts an HTTP response object, and returns an object of type T.
|
boolean |
needsConnectionLeftOpen()
Indicates if this response handler requires that the underlying HTTP
connection not be closed automatically after the response is
handled.
|
public final HttpResponseHandler<T> delegateToTime
public static <T> MetricCollectingHttpResponseHandler<T> create(SdkMetric<? super Duration> durationMetric, HttpResponseHandler<T> delegateToTime)
public T handle(SdkHttpFullResponse response, ExecutionAttributes executionAttributes) throws Exception
HttpResponseHandler
handle
in interface HttpResponseHandler<T>
response
- The HTTP response to handle, as received from an AWS service.executionAttributes
- The attributes attached to this particular execution.Exception
- If any problems are encountered handling the response.public boolean needsConnectionLeftOpen()
HttpResponseHandler
For example, if the object returned by this response handler manually
manages the stream of data from the HTTP connection, and doesn't read all
the data from the connection in the HttpResponseHandler.handle(SdkHttpFullResponse, ExecutionAttributes)
method,
this method can be used to prevent the underlying connection from being
prematurely closed.
Response handlers should use this option very carefully, since it means that resource cleanup is no longer handled automatically, and if neglected, can result in the client runtime running out of resources for new HTTP connections.
needsConnectionLeftOpen
in interface HttpResponseHandler<T>
Copyright © 2020. All rights reserved.