TIdHTTP.Response.TIdHTTP.Head()
Свойство говорит вам , принимает ли сервер байтовые диапазоны для данного URL, после того, как вы запросили URL. Вы должны использовать AcceptRanges
свойство для фактического указания диапазона при запросе URL-адреса. Вы можете использовать TIdHTTP.Get()
для проверки AcceptRanges
значения, прежде чем запрашивать фактические данные URL, используя соответственно AcceptRanges
или без диапазона байтов.
Однако, если AcceptRanges
свойство корректно после вызова TIdHTTP.Head()
, то сервер просто не поддерживает диапазоны байтов для этого URL-адреса, поэтому у вас нет выбора, кроме как загружать данные URL целиком и просто отбрасывать все части, которые вы не хотите от него , Вы можете использовать TIdEventStream
для этого или собственный производный TStream
класс, который переопределяет виртуальный TStream.Write()
метод. Любой подход позволит вам игнорировать загружаемые данные, просто отслеживать, сколько байтов «записывается» в ваш поток, игнорируя байты до тех пор, пока вы не достигнете желаемого начального смещения, а затем сохраните оставшиеся данные по мере необходимости до тех пор, пока желательное конечное смещение .