Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TIdHttp и Partial get, ну или попросту докачка 
:(
    Опции темы
phanatos
Дата 20.9.2006, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 9.8.2006

Репутация: 1
Всего: 2



Эта тема почему-то неосвещена, хотя все механизмы у Indy есть. Полазив по интернету пришел к выводу, что или народ не понимает сути вопроса, или в разных версиях Indy разная реализация. У меня лично 10.1.5, и вот эта версия работает очень странно. Как известно, для частичной загрузки есть такая штука:
Код

  IdHTTP1.Request.ContentRangeStart := 10000;
  IDHTTP1.Request.ContentRangeEnd := 20000;

Её советуют на разных форумах, но она не работает. И не удивительно, так как покопавшись в нутренностях Indy можно увидеть, что 
ContentRangeStart и ContentRangeEnd используются только при формировании TIdResponseHeaderInfo. 

Код

    sCR := iif(HasContentRange,
      Sys.Format('%d%s%d', [FContentRangeStart, '-', FContentRangeEnd]), '*');
    sCI := iif(HasContentRangeInstance,
      Sys.Format('%d', [FContentRangeInstanceLength]), '*');

    RawHeaders.Values['Content-Range'] := 'bytes ' + sCR + '/' + sCI;


А в TIdRequestHeaderInfo.SetHeaders используется свойство Range (причем так банально):

Код

    if Length(FRange) > 0 then
    begin
      Values['Range'] := 'bytes=' + FRange; {do not localize}
    end;


Ну а в хелпе про range написано следующее: 
Цитата

Range is a Published String property


И пипец. Вот такой вот продукт =)

Короче, те, кто не знает, как скачать кусок, пишите так:

Код

var 
  LDestStream: TMemoryStream;
  aStart,aEnd:Int64;
  url:String;
begin
  url:='http://www.aaa.com';
  aStart:=10;
  aEnd:=20;
  LDestStream := TMemoryStream.Create;
  try
    IDHTTP1.Request.Range:=Format('%d%s%d',[aStart,'-',aEnd]);
    IdHTTP1.Get(url, LDestStream);
    LDestStream.SaveToFile('D:\1.htm');
  finally
    LDestStream.Free; 
  end;
end;



PM MAIL   Вверх
drkot
Дата 21.9.2006, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: 0
Всего: 8



Десятый пакет нестабилен и недоделан (пилот версия). Ее только обкатывают.
Поставь 7 или 8 гораздо стабильнее да белух пятен меньше.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0426 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.