Delphi XE: idHttp & Request.Range, ошибка? - PullRequest
2 голосов
/ 26 августа 2011

У меня Delphi XE. Я пытаюсь установить Request.Range из idHttp, но не могу этого сделать. Delphi не позволяет мне делать это ни во время разработки, ни во время выполнения.

например. Я установил '6000-' во время разработки -> свойство всегда пусто.

делаю (в потоке):

Downloader.Request.Range:=(IntToStr(DFileStream.Position) + '-');
synchronize(procedure begin showmessage(Downloader.Request.Range) end); 

showmessage(Downloader.Request.Range) мне ничего не показывает (пустая строка).

Я проверил запрос в HTTPAnalyzer -> моя программа не отправляет диапазон.

А проверил это поведение в Delphi 2010 - все нормально . Я установил диапазон в дизайне / реальном времени. Результат хорош в обоих случаях.

У кого-нибудь есть идеи?

Это ошибка или что?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 26 августа 2011

Свойство Range устарело, вместо этого необходимо использовать свойство Ranges.

Проверьте этот образец

uses
  IdHTTPHeaderInfo; 

var
  Range: TIdEntityRange;
begin
    Range := FHttp.Request.Ranges.Add;
    Range.StartPos := FRangeFrom;
    Range.EndPos := FRangeTo;
    FHttp.Get(FURL, FileStream);
end;
1 голос
/ 26 августа 2011

Читать это https://forums.embarcadero.com/thread.jspa?messageID=335670

Как установить диапазон в Delphi XE:

idhttp1.Request.Ranges.Add.StartPos:=6000;

Это так же, как

idHttp1.Request.Range:='6000-';
...