Здравствуйте, B0BAH, Вы писали:
BBA>А можно ли использовать процедуру: procedure Get(AURL: string; const AResponseContent: TStream); overload; (класс TIdHTTP)??? BBA>То есть если использовать просто function Get(AURL: string): string; overload; то страница сразу качается, а при вызове процедуры она скачается или нет? Мне вообще не понятно как работает процедура (я по потоки ничего не знаю), но я понял что у потока есть свойство size, может через него получится? BBA>И ещё вопросс как разорвать соединение сразу после получения заголовка если использовалась функция Get?
Насколько мне известно, в Indy вся функциональность по работе с HTTP глубоко запрятана. Например, в той версии, которую я изучал, небыло такой вещи, как частичная закачка.
Кстати, можешь попробовать указывать range в заголовках при отправке GET. Если веб-сервер поддерживает докачку, то он тебе отдаст контент только в нужном интервале. Хотя в случае php это вряд ли, но нужно проверить — сам не знаю. Тогда и Indy сойти должны. Опять же если тебе сервер не вернет content-length, а он это может сделать, то без полного скачивания размер контента ты никак не узнаешь.
Еще совет — почитай W3C HTTP спецификацию. Может на какие мысли приведет.