Сбой приложения Xamarin.ios по асинхронному запросу HttpClient (SIGABRT: сокет не подключен) - PullRequest
0 голосов
/ 04 октября 2019

У меня проблема в том, что я использую HttpClient для извлечения большого JSON-контента из API в асинхронной задаче. Проблема возникает, когда я блокирую экран устройства, когда приложение находится в фоновом режиме и выполняет запрос. Если я снова открою приложение, оно вылетает (SIGABRT: сокет не подключен)

Это проект на github: https://github.com/aproram/httpclient-bug

Чтобы повторить проблему, этошаги, чтобы точно воспроизвести его: -Убедитесь, что приложение завершено и не работает в фоновом режиме -Откройте приложение -Нажмите кнопку «Домой». -блокировать телефон -блокировать телефон -открыть приложение снова, оно вылетитсделанный. Спасибо!

1 Ответ

0 голосов
/ 04 октября 2019

Вам просто нужно добавить нулевые проверки, так как время запроса истекло.

Он не слушает ответ и, следовательно, возвращает ноль. Вы можете сделать что-то вроде этого:

var content = await response.Content.ReadAsStreamAsync();
if (content != null)
{
    using (var streamReader = new StreamReader(content))
    {
        var content_json = streamReader.ReadToEnd();
        if (content_json != null)
            txtbox1.Text = content_json;
    }
}

Ваша авария должна исчезнуть.

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