private async Task <HttpResponseModel> Send(HttpRequestModel request)
        {
            using (var reqMsg = HttpRequestMessageBuilder.BuildHttpRequestMessage(request))
            {
                var cancellationToken = GetCancellationToken(request.ResponseTimeoutOverride);
                var transactionId     = GetNextTransactionId();

                var sentAtUtc = DateTimeOffset.UtcNow;
                var respMsg   = await SendNow(reqMsg, cancellationToken);

                var resp = HttpResponseBuilder
                           .BuildHttpResponseModel(
                    transactionId,
                    sentAtUtc,
                    DateTimeOffset.UtcNow,
                    request.ShouldBufferResponseBody,
                    respMsg);

                return(await resp);
            }
        }