await HttpClient.SendAsync не отвечает - PullRequest
0 голосов
/ 03 июня 2019

У меня есть команда curl, которая возвращает вывод.Отказ в доступе - это хорошо для меня, вывод XML - это то, что меня сейчас интересует.

enter image description here

curl -v  -E C:\SEB\certificate.pfx --cert-type p12 -X GET https://test.api.bgw.baltics.sebgroup.com/v1/accounts/EE101010220279354221/current-transactions -H OrgId:22223338

Я написал фрагмент кода, который долженвыполните то же самое, что и указанная команда curl, но переменная response возвращает ноль (когда код достигает строки)

response = await httpClient.SendAsync(request); 

программа завершает работу и дальнейший код не выполняется.

Что я делаюнеправильно?Почему я не могу получить содержимое ответа так же, как в команде curl?

Заранее благодарю за помощь

Фрагмент кода, используемый в C # Ниже:

    public async Task HttpRequestAppAsync()
    {

                var handler = new HttpClientHandler {ClientCertificateOptions = ClientCertificateOption.Manual};
                handler.ClientCertificates.Add(new X509Certificate2("C:\\SEB\\certificate.pfx"));

                using (var httpClient = new HttpClient(handler))
                {
                    using (var request = new HttpRequestMessage(new HttpMethod("GET"), "https://test.api.bgw.baltics.sebgroup.com/v1/accounts/EE101010220279354221/current-transactions"))
                    {
                        request.Headers.TryAddWithoutValidation("OrgId", "22223338");
                        response = await httpClient.SendAsync(request);
                    }
                }

    }

1 Ответ

0 голосов
/ 03 июня 2019

Казалось бы, понял это.Была установлена ​​мертвая блокировка. Все, что мне нужно было сделать, это добавить дополнительный метод ConfigureAwait и установить для него значение false

response = await httpClient.SendAsync(request).ConfigureAwait(false);
...