System.Net.Http.HttpHandlerToFilter.SendAsync C# (CSharp) Method

SendAsync() protected method

protected SendAsync ( HttpRequestMessage request, CancellationToken cancel ) : Task
request HttpRequestMessage
cancel System.Threading.CancellationToken
return Task
        protected internal override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancel)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            cancel.ThrowIfCancellationRequested();

            Guid loggingRequestId = s_diagnosticListener.LogHttpRequest(request);

            RTHttpRequestMessage rtRequest = await ConvertRequestAsync(request).ConfigureAwait(false);
            RTHttpResponseMessage rtResponse = await _next.SendRequestAsync(rtRequest).AsTask(cancel).ConfigureAwait(false);

            // Update in case of redirects
            request.RequestUri = rtRequest.RequestUri;

            HttpResponseMessage response = ConvertResponse(rtResponse);
            response.RequestMessage = request;

            s_diagnosticListener.LogHttpResponse(response, loggingRequestId);

            return response;
        }

Usage Example

示例#1
0
        protected internal override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request,
                                                                               CancellationToken cancellationToken)
        {
            CheckDisposed();
            SetOperationStarted();

            HttpResponseMessage response;

            try
            {
                await ConfigureRequest(request).ConfigureAwait(false);

                Task <HttpResponseMessage> responseTask = DiagnosticsHandler.IsEnabled() ?
                                                          _diagnosticsPipeline.SendAsync(request, cancellationToken) :
                                                          _handlerToFilter.SendAsync(request, cancellationToken);

                response = await responseTask.ConfigureAwait(false);
            }
            catch (OperationCanceledException)
            {
                throw;
            }
            catch (Exception ex)
            {
                // Convert back to the expected exception type
                throw new HttpRequestException(SR.net_http_client_execution_error, ex);
            }

            ProcessResponse(response);
            return(response);
        }
All Usage Examples Of System.Net.Http.HttpHandlerToFilter::SendAsync