C# Не передает запрос httpClient.SendAsync(request)

Передаю post запрос по api На строке передачи запроса сервер не отвечает. Возможно, ошибка в коде - не передается запрос?

 private async Task<TokenClass> GetToken(string clientID, string clientSecret)
    {
        HttpClient httpClient = new HttpClient();
        HttpRequestMessage request = new HttpRequestMessage();
        request.RequestUri = new Uri(Host + "/api/client/token");//https://performance.ozon.ru/api/client/token
        request.Method = HttpMethod.Post;
        request.Headers.TryAddWithoutValidation("Accept", "application/json");
        request.Content = new StringContent("{\"client_id\":\"[скрыл]@advertising.performance.ozon.ru\",\"client_secret\":\"[скрыл]\",\"grant_type\":\"client_credentials\"}", Encoding.UTF8, "application/json");

        HttpResponseMessage response = await httpClient.SendAsync(request);//почему-то при вызове метода программа зависает. Видимо, нет запроса

        if (response.StatusCode != HttpStatusCode.OK)
        {
            MessageBox.Show(response.StatusCode.ToString());
            return null;
        }
        return await response.Content.ReadAsAsync<TokenClass>();
    }

Ответы (1 шт):

Автор решения: Андрей Тахтеев

А ларчик просто открывался. Никаких исключений, ответов не ловил. Просто все зависало на строчке кода:

HttpResponseMessage response = await httpClient.SendAsync(request);//почему-то при вызове метода программа зависает. Видимо, нет запроса

Запрос при этом был отправлен не верно. Верно следующее:

HttpResponseMessage response = httpClient.PostAsync(Host + "/api/client/token", request.Content).Result;

То есть я пытался отправить не Post запрос. Скидываю полный верный вариант метода:

private async Task<TokenClass> GetToken(string clientID, string clientSecret)
    {
        TokenClass token = null;
        try
        {
            HttpClient httpClient = new HttpClient();//
            HttpRequestMessage request = new HttpRequestMessage();//

            request.RequestUri = new Uri(Host + "/api/client/token");//https://performance.ozon.ru/api/client/token
            request.Method = HttpMethod.Post;
            //request.Headers.Add("client_id", clientID);
            //request.Headers.Add("client_secret", clientSecret);
            //request.Headers.Add("grant_type", "client_credentials");
            request.Headers.TryAddWithoutValidation("Accept", "application/json");
            request.Content = new StringContent("{\"client_id\":\"" + clientID + "\",\"client_secret\":\"" + clientSecret + "\",\"grant_type\":\"client_credentials\"}", Encoding.UTF8, "application/json");

            HttpResponseMessage response = httpClient.PostAsync(Host + "/api/client/token", request.Content).Result;

            MessageBox.Show(request.ToString());

            if (response.StatusCode != HttpStatusCode.OK)
            {
                MessageBox.Show(response.StatusCode.ToString());
                return null;
            }


            token = await response.Content.ReadAsAsync<TokenClass>();

            MessageBox.Show(String.Format("Токен будет работать {0} секунд = {1} минут.", token.expires_in.ToString(), token.expires_in / 60));

            return token;
        }
        catch (Exception ex)
        {
            MessageBox.Show("Ошибка получения токена. "+ex.Message);
            return null;
        }

    }
→ Ссылка