Выполните задачу, которую он получит автоматически AccessToken int 401 error - PullRequest
0 голосов
/ 04 января 2019

Я новичок в asp net, и я пытаюсь создать подпрограмму signle, которая будет отправлять авторизацию в каждом запросе (например, AccessToken и AccessType. У меня есть пустота, которая автоматически отправляет имя пользователя и пароль на сервер, и он получает AccessToken и AccessType.

Эта рутина называется

GetToken(string username,string password);

Тогда в другой рутине я делаю свои запросы. Пример

  public async static Task<string> IfOrderExists(string HttpResponse="[]")
    {
        try
        {
            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(TokenType, AccessToken);
                client.Timeout = TimeSpan.FromMilliseconds(20000);
                var response = await client.GetAsync(ServerIfOrderExists, cts.Token);
                if(response.IsSuccessStatusCode)
                    HttpResponse = await response.Content.ReadAsStringAsync();
                else if ((int)response.StatusCode == 401)
                 {
                    await GetToken(ServerUsername, ServerPassword);
                    HttpResponse= await IfOrderExists();
                  }

            }
        }
        catch 
        {

        }
        return HttpResponse;
    }

Img1 Я попытался выполнить вторую задачу ожидания внутри уже существующей, которая, когда я получаю ошибку 401, автоматически запускает мою процедуру GetToken, а затем запускает ту же самую процедуру для возврата моего результата. Я не знаю, правильный ли это метод, поэтому я задаю этот вопрос. Пожалуйста, сообщите мне, если есть лучший способ сделать это. Я создам карту, чтобы помочь вам понять, как работает моя рутина.

Img2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...