2

私はDelphi XEを持っています。設定しようとしましたがRequest.RangeidHttpこれができません。Delphi では、設計時でも実行時でも、これを行うことはできません。

たとえば'6000-'、設計時に設定すると、常にプロパティが空になります。

私は(スレッドで):

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

showmessage(Downloader.Request.Range)何も表示されません (空の文字列)。

HTTPAnalyzer でリクエストを確認しました -> プログラムが範囲を送信しません。

Delphi 2010 でこの動作を確認しました -すべて正常です。デザイン/リアルタイムで範囲を設定します。どちらの場合も結果は問題ありません。

誰にもアイデアはありますか?

これはバグですか?

ありがとう!

4

2 に答える 2

5

プロパティは非推奨であり、Range代わりにプロパティを使用する必要がありRangesます。

このサンプルを確認してください

uses
  IdHTTPHeaderInfo; 

var
  Range: TIdEntityRange;
begin
    Range := FHttp.Request.Ranges.Add;
    Range.StartPos := FRangeFrom;
    Range.EndPos := FRangeTo;
    FHttp.Get(FURL, FileStream);
end;
于 2011-08-26T14:00:44.203 に答える
1

これを読んでください https://forums.embarcadero.com/thread.jspa?messageID=335670

Delphi XE で範囲を設定する方法:

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

と同じです

idHttp1.Request.Range:='6000-';
于 2011-08-26T14:34:33.517 に答える