他のライブラリについてコメントすることはできませんが、Indy はあなたが求めるものすべてをサポートしています。
サーバーがサポートしている場合、TIdHTTPコンポーネントはバイト範囲を使用してファイルをダウンロードできます。このメソッドを使用して、サーバーが特定の URL のヘッダーをTIdHTTP.Head()返すかどうかを確認できます。Accept-Ranges: bytesその場合は、その URL からデータをダウンロードするときに、必要に応じてTIdHTTP.Request.ContentRangeStartおよびTIdHTTP.Request.ContentRangeEndプロパティを目的のバイト オフセットに設定できます。リソースの複数の部分を同時にダウンロードするには、それぞれが独自のTIdHTTPコンポーネントを持つ複数のスレッドを並行して実行するだけです。次に、複数の部分をダウンロードして一時ファイルを分離し、終了時にそれらを最終ファイルにマージするか、事前にサイズ設定された単一のファイルを作成してから、書き込み先TFileStreamの開始オフセットで複数のオブジェクトを開く必要があります。 TIdHTTP.
TIdHTTPクッキーをサポートします。TIdCookieManagerコンポーネントをTIdHTTP.CookieManagerプロパティに割り当てることも、未割り当てのままにして内部でオブジェクトTIdHTTPを作成することもできます。TIdCookieManagerどちらの方法でも、TIdHTTP.AllowCookiesプロパティを True に設定します。
Web サイトへのログインは、サーバーが HTTP ベースの認証と WebForm ベースの認証のどちらを使用しているかに応じて、2 つの異なる方法のいずれかで実行されます。
HTTP 認証の場合、 andやuntなどの目的のIdAuthentication...ユニットをuses句に追加して、個々の認証クラスを に登録し、必要に応じておよびプロパティを設定します。WebServer がリクエスト中に認証を要求した場合、は適切なクラスを選択し、それを使用して指定された資格情報でログインします。サーバーが資格情報を拒否すると、資格情報を変更して再試行する機会を与えるために、イベントが発生します。IdAuthentacationDigestIdAuthenticationNTLMIdAllAuthenticationsTIdHTTPTIdHTTP.Request.UserNameTIdHTTP.Request.PasswordTIdHTTPTIdHTTP.OnAuthorization
WebForm 認証の場合、フォーマットされた POST リクエストをポストするメソッドにTIdMultipartFormDataStream渡すことができるクラスがあります。TIdHTTP.Post()multipart/form-data
TIdHTTPIndy 10 では gzip ファイルと deflate 圧縮ファイルをサポートしています ( TIdHTTPIny 9 以前では圧縮をサポートしていません)。TIdZLibCompressorBaseなどの派生コンポーネントをTIdCompressorZLibプロパティTIdHTTP.Compressorに割り当てることができ、適切な要求ヘッダーの送信やサーバーの応答ヘッダーの確認TIdHTTPなど、すべての詳細を処理します。Accept-EncodingTransfer-Encoding
TIdHTTPOnWorkBegin、OnWork、およびOnWorkEnd進行状況バーなどに使用できるイベントがあります。OnWorkBeginイベントには、既知の場合は転送される合計バイト数を指定するパラメーターAWorkCountMaxがあり、それ以外の場合は 0 になります (ヘッダーを使用する HTTP 応答はそれに応じてContent-Length設定されますが、ヘッダーを使用する HTTP 応答は設定されません)。イベントには、値に関係なく、これまでに転送されたバイト数を指定するパラメーターがあります。AWorkCountMaxTransfer-Encoding: chunkedOnWorkAWorkCountAWorkCounMax