Перехватить C # HttpClient GetAsync
У меня есть веб-проект (C #, MVC5, но нет WebAPI) и простой HTTP-клиент REST, который вызывает внешнюю службу REST и получает доступ к etToken etcing.
Я хочу проверить ответ от всех моих вызовов Get / PostAsync для statusCode 401, но вижу, что могу только переопределитьSendAsync
метод при реализацииDelegatingHandler
.
class CustomDelegatingHandler : DelegatingHandler
{
async protected override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request, CancellationToken cancellationToken)
{
HttpResponseMessage response = await base.SendAsync(request, cancellationToken);
if (response.StatusCode == HttpStatusCode.Unauthorized)
{
Есть ли что-то еще, что я могу сделать, чтобы не изменять реализацию всех моих асинхронных вызовов, чтобы использоватьSendAsync
?
(Что я действительно хочу сделать, так это обновить accessToken.)