Exemple #1
0
        private AmazonWebServiceResponse UnmarshallResponse(UnmarshallerContext context,
                                                            IRequestContext requestContext)
        {
            try
            {
                var unmarshaller = requestContext.Unmarshaller;
                AmazonWebServiceResponse response = null;
                using (requestContext.Metrics.StartEvent(Metric.ResponseUnmarshallTime))
                {
                    response = unmarshaller.UnmarshallResponse(context);
                }

                requestContext.Metrics.AddProperty(Metric.StatusCode, response.HttpStatusCode);
                requestContext.Metrics.AddProperty(Metric.BytesProcessed, response.ContentLength);
                if (response.ResponseMetadata != null)
                {
                    requestContext.Metrics.AddProperty(Metric.AWSRequestID, response.ResponseMetadata.RequestId);
                }

                context.ValidateCRC32IfAvailable();
                context.ValidateFlexibleCheckumsIfAvailable(response.ResponseMetadata);
                return(response);
            }
            finally
            {
                var logResponseBody = ShouldLogResponseBody(_supportsResponseLogging, requestContext);

                if (logResponseBody)
                {
                    this.Logger.DebugFormat("Received response (truncated to {0} bytes): [{1}]",
                                            AWSConfigs.LoggingConfig.LogResponsesSizeLimit,
                                            context.ResponseBody);
                }
            }
        }