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