NSURLSession и многопоточность для загрузки нескольких файлов

Если сервер поддерживает его (и серверы HTTP 1.1 должны), только тогда вы можете использовать запросы диапазона ... и если все, что вы хотите сделать, это проверить, то просто отправьте запрос HEAD вместо запроса GET. Те же заголовки, то же самое, просто «ГОЛОВА», а не «ПОЛУЧИТЬ». Если вы получите ответ 206, вы узнаете, что Range поддерживается, и в противном случае вы получите ответ 200.

-1
задан agent.smith 17 January 2019 в 17:22
поделиться

1 ответ

Один сеанс с множеством задач - по одному на запрос - будет работать безопасно одновременно. Независимо от того, выполняет ли клиент запросы на многих серверах или на одном, не имеет значения, если параллелизм меньше, чем HTTPMaximumConnectionsPerHost, который является частью конфигурации сеанса.

Задачи выполняются параллельно. (На самом деле довольно трудно найти место в документах, где эти слова появляются явно , но здесь есть довольно хороший смысл ).

Обратите внимание, что у сессионных конфигов есть delegateQueue. Основанием для этого является то, что поскольку задачи сеансов выполняются одновременно, уровень приложения должен сериализовать обработку результатов, чтобы две параллельных задачи не пересекались друг с другом через делегата.

0
ответ дан danh 17 January 2019 в 17:22
поделиться