Class JsonResponseHandler<T extends SdkPojo>
java.lang.Object
software.amazon.awssdk.protocols.json.internal.unmarshall.JsonResponseHandler<T>
- Type Parameters:
T
- Indicates the type being unmarshalled by this response handler.
- All Implemented Interfaces:
HttpResponseHandler<T>
public final class JsonResponseHandler<T extends SdkPojo>
extends Object
implements HttpResponseHandler<T>
Default implementation of HttpResponseHandler that handles a successful response from a
service and unmarshalls the result using a JSON unmarshaller.
-
Field Summary
Fields inherited from interface software.amazon.awssdk.core.http.HttpResponseHandler
X_AMZ_ID_2_HEADER, X_AMZN_REQUEST_ID_HEADER, X_AMZN_REQUEST_ID_HEADER_ALTERNATE, X_AMZN_REQUEST_ID_HEADERS
-
Constructor Summary
ConstructorDescriptionJsonResponseHandler
(JsonProtocolUnmarshaller unmarshaller, Function<SdkHttpFullResponse, SdkPojo> pojoSupplier, boolean needsConnectionLeftOpen, boolean isPayloadJson) Constructs a new response handler that will use the specified JSON unmarshaller to unmarshall the service response and uses the specified response element path to find the root of the business data in the service's response. -
Method Summary
Modifier and TypeMethodDescriptionhandle
(SdkHttpFullResponse response, ExecutionAttributes executionAttributes) Accepts an HTTP response object, and returns an object of type T.boolean
Indicates if this response handler requires that the underlying HTTP connection not be closed automatically after the response is handled.
-
Constructor Details
-
JsonResponseHandler
public JsonResponseHandler(JsonProtocolUnmarshaller unmarshaller, Function<SdkHttpFullResponse, SdkPojo> pojoSupplier, boolean needsConnectionLeftOpen, boolean isPayloadJson) Constructs a new response handler that will use the specified JSON unmarshaller to unmarshall the service response and uses the specified response element path to find the root of the business data in the service's response.- Parameters:
unmarshaller
- The JSON unmarshaller to use on the response.
-
-
Method Details
-
handle
public T handle(SdkHttpFullResponse response, ExecutionAttributes executionAttributes) throws Exception Description copied from interface:HttpResponseHandler
Accepts an HTTP response object, and returns an object of type T. Individual implementations may choose to handle the response however they need to, and return any type that they need to.- Specified by:
handle
in interfaceHttpResponseHandler<T extends SdkPojo>
- Parameters:
response
- The HTTP response to handle, as received from an AWS service.executionAttributes
- The attributes attached to this particular execution.- Returns:
- An object of type T, as defined by individual implementations.
- Throws:
Exception
- If any problems are encountered handling the response.- See Also:
-
needsConnectionLeftOpen
public boolean needsConnectionLeftOpen()Description copied from interface:HttpResponseHandler
Indicates if this response handler requires that the underlying HTTP connection not be closed automatically after the response is handled.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.
- Specified by:
needsConnectionLeftOpen
in interfaceHttpResponseHandler<T extends SdkPojo>
- Returns:
- True if this response handler requires that the underlying HTTP connection be left open, and not automatically closed, otherwise false.
-