Почему после выполнения http запроса не работает программа?
Пишу программу на WPF. Мне нужно сделать Get запрос по url и вытянуть оттуда информацию. Вот примерно следующий код:
HttpResponseMessage responseMessage = await _httpClient.GetAsync(ul); // <-- Error is here
responseMessage.EnsureSuccessStatusCode();
string content = await responseMessage.Content.ReadAsStringAsync();
И вот мой HttpClient:
private readonly HttpClient _httpClient;
private readonly SocketsHttpHandler _socketHandler;
ctor()
{
_socketHandler = new SocketsHttpHandler()
{
PooledConnectionIdleTimeout = TimeSpan.FromSeconds(15),
AllowAutoRedirect = true,
};
_httpClient = new HttpClient(_socketHandler, true);
}
Проблема в том, что при выполнении данного кода, точнее, указанной строки в коде, программа перестаёт работать. Ставил брейкпоинты на соответствующую строку и на следующую, но программа к следующей строке (responseMessage.EnsureSuccessStatusCode();) не доходит, а просто перестаёт работать, так будто у меня вылетело исключение. try/catch ничего не ловят, сама форма НЕ ОТКРЫВАЕТСЯ.
Был совет поставить .ConfigureAwait(false) в конце данной строчки, поскольку это может быть deadlock, но тогда программа выдаёт неверные данные.
Интересно то, что до этого программа работала корректно, но в какой-то момент просто перестала работать.
С чем это может быть связанно и как это решить?
Ответы (1 шт):
Проблему решил, я вынес вызов метода ещё в отдельный метод, поскольку я вызывал данный момент с http запросом в конструкторе формы