public virtual HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken) { if (request == null) { throw new ArgumentNullException(nameof(request)); } CheckDisposed(); if (ShouldSendWithTelemetry(request)) { HttpTelemetry.Log.RequestStart(request); try { return(_handler.Send(request, cancellationToken)); } catch when(LogRequestFailed(telemetryStarted: true)) { // Unreachable as LogRequestFailed will return false throw; } finally { HttpTelemetry.Log.RequestStop(); } } else { return(_handler.Send(request, cancellationToken)); } }
public virtual HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken) { ArgumentNullException.ThrowIfNull(request); ObjectDisposedException.ThrowIf(_disposed, this); if (ShouldSendWithTelemetry(request)) { HttpTelemetry.Log.RequestStart(request); try { return(_handler.Send(request, cancellationToken)); } catch when(LogRequestFailed(telemetryStarted: true)) { // Unreachable as LogRequestFailed will return false throw; } finally { HttpTelemetry.Log.RequestStop(); } } else { return(_handler.Send(request, cancellationToken)); } }
internal override ValueTask <HttpResponseMessage> SendAsync(HttpRequestMessage request, bool async, CancellationToken cancellationToken) { if (IsEnabled()) { return(SendAsyncCore(request, async, cancellationToken)); } else { return(async ? new ValueTask <HttpResponseMessage>(_innerHandler.SendAsync(request, cancellationToken)) : new ValueTask <HttpResponseMessage>(_innerHandler.Send(request, cancellationToken))); } }
public virtual HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken) { if (request == null) { throw new ArgumentNullException(nameof(request)); } CheckDisposed(); return(_handler.Send(request, cancellationToken)); }
public HttpResponseMessage Send(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken) { if (request == null) { throw new ArgumentNullException("request"); } if (request.SetIsUsed()) { throw new InvalidOperationException("Cannot send the same request message multiple times"); } if (request.RequestUri == null) { if (base_address == null) { throw new InvalidOperationException("The request URI must either be an absolute URI or BaseAddress must be set"); } request.RequestUri = base_address; } try { if (cancellation_token == null) { cancellation_token = new CancellationTokenSource(); } using (var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellation_token.Token, cancellationToken)) { cts.CancelAfter(timeout); var response = handler.Send(request, cts.Token); if (response == null) { throw new InvalidOperationException("Handler failed to return a response"); } return(response); } } finally { cancellation_token.Dispose(); cancellation_token = null; } }
public virtual HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken) { if (request == null) { throw new ArgumentNullException(nameof(request)); } CheckDisposed(); if (NetEventSource.IsEnabled) { NetEventSource.Enter(this, request); } HttpResponseMessage response = _handler.Send(request, cancellationToken); if (NetEventSource.IsEnabled) { NetEventSource.Exit(this, response); } return(response); }