public interface IRequestHandler2
RequestHandler2
. Do not use this outside the core SDK. We can and will add
methods to this interface in the future. Extend RequestHandler2
to implement a custom
request handler.Modifier and Type | Method and Description |
---|---|
void |
afterAttempt(HandlerAfterAttemptContext context)
Runs any additional processing logic on a request after each individual attempt.
|
void |
afterError(Request<?> request,
Response<?> response,
Exception e)
Runs any additional processing logic on a request after it has failed.
|
void |
afterResponse(Request<?> request,
Response<?> response)
Runs any additional processing logic on the specified request (after is has been executed by
the client runtime).
|
void |
beforeAttempt(HandlerBeforeAttemptContext context)
Runs any additional processing logic on a request before each individual attempt is made.
|
AmazonWebServiceRequest |
beforeExecution(AmazonWebServiceRequest request)
Runs any additional processing logic on the specified request object as soon as the request
is provided to the service client.
|
AmazonWebServiceRequest |
beforeMarshalling(AmazonWebServiceRequest request)
Runs any additional processing logic on the specified request object before it is marshaled
into an HTTP request.
|
void |
beforeRequest(Request<?> request)
Runs any additional processing logic on the specified request (before it is executed by the
client runtime).
|
HttpResponse |
beforeUnmarshalling(Request<?> request,
HttpResponse httpResponse)
Runs any additional processing logic on the specified response before it's unmarshalled.
|
AmazonWebServiceRequest beforeExecution(AmazonWebServiceRequest request)
This request handler is excluded from the client execution time metrics and is run on the application's thread, even for asynchronous requests.
Warning: Modifications to this message will leak out to the user, who might reuse the request
object without realizing that it was modified as part of sending it the first time. For this
reason, we recommend that you only modify the request in the IRequestHandler2.beforeRequest(Request)
method. If you require data that is not available in that method, you should create a
AmazonWebServiceRequest.clone()
of the request (which performs a deep copy of the
handler context map), add any context data you require in the IRequestHandler2.beforeRequest(Request)
method using AmazonWebServiceRequest.addHandlerContext(HandlerContextKey, Object)
, and
return your cloned message from this method. You can then extract that data for use in the
request using HandlerContextAware.getHandlerContext(HandlerContextKey)
.
request
- the request passed in by the userAmazonWebServiceRequest beforeMarshalling(AmazonWebServiceRequest request)
Warning: Modifications to this message will leak out to the user, who might reuse the request
object without realizing that it was modified as part of sending it the first time. For this
reason, we recommend that you only modify the request in the IRequestHandler2.beforeRequest(Request)
method. If you require data that is not available in that method, you should create a
AmazonWebServiceRequest.clone()
of the request (which performs a deep copy of the
handler context map), add any context data you require in the IRequestHandler2.beforeRequest(Request)
method using AmazonWebServiceRequest.addHandlerContext(HandlerContextKey, Object)
, and
return your cloned message from this method. You can then extract that data for use in the
request using HandlerContextAware.getHandlerContext(HandlerContextKey)
.
request
- the request passed in by the uservoid beforeRequest(Request<?> request)
request
- The low level request being processed.void beforeAttempt(HandlerBeforeAttemptContext context)
context
- container for callback-related data; includes the requestHttpResponse beforeUnmarshalling(Request<?> request, HttpResponse httpResponse)
AmazonServiceException
request
- The low level request being processed.httpResponse
- The Raw HTTP response before being unmarshalledHttpResponse
to replace the actual response. May be a mutated version of the
original or a completely new HttpResponse
objectvoid afterAttempt(HandlerAfterAttemptContext context)
context
- container for the request as well as all possible results of the attemptvoid afterResponse(Request<?> request, Response<?> response)
request
- The low level request being processed.response
- The response generated from the specified request.void afterError(Request<?> request, Response<?> response, Exception e)
request
- The request that generated an error.response
- the response or null if the failure occurred before the response is made availablee
- The error that resulted from executing the request.Copyright © 2024. All rights reserved.