2017-09-01 17 views
0

今、デルファイ10のNethttpclientコンポーネントを介して私のサーバーにファイルを送信しますが、アップロードの進行状況を追跡する方法はわかりません。ファイルをダウンロードすると、イベントReceiveDataで進捗状況を確認できます。 それを行うには、他の便利な機能やイベントが親切に私はこの問題を解決するために助けてください、ありません。(のみnethttpclient、私はIndyを使用していないので)delphi 10でNetHttpClientによるアップロードの進捗状況を追跡する方法は?

+2

何ですか?別のHTTPコンポーネントですか?インターフェイスプログラミングのもう一つの理由実装されたインターフェイスオブジェクトのみを作成して使用した場合、Indyや進捗状況を報告できる別のライブラリやコンポーネントに切り替えることはできます。 – Victoria

+0

はい、すべてのコードはnethttpclientをベースにしています – HenryXu

+0

XE10のようなバージョンはありません –

答えて

4

TNetHTTPClientは単に時のステータス情報の任意の種類を公開していません。アップロードはOnRequestCompleteOnRequestError以外です。アップロードされたデータの進行状況を確認する必要がある場合は、必要な進行状況レポートを提供する別のHTTPライブラリに切り替える必要があります。

つまり、TNetHTTPClientでアップロードステータスを取得するには、TStreamを使用してファイルデータを投稿するしかありません。 TFileStreamからカスタムクラスを派生させ、そのRead()メソッドをオーバーライドして、ファイルデータを読み取り、必要に応じてステータスを報告します。

+0

どうやったら、ヒント情報を教えてください。私はそれを修正しようとしています。 – HenryXu

+1

@HenryXu:あなたが求めているのはStackOverflowにとっては広すぎます。利用可能なHTTPライブラリーが多数あり、その多くに進捗報告があります。ニーズに合ったコードを選んでコードを変更して使用してください。なぜインディを使いたくないのですか?これはRAD Studioにプリインストールされており、HTTPコンポーネントには送信と受信の両方の進行状況イベントがあります。 –

+0

はい、彼らはindy、ics、cisなどのような進捗イベントを持っています。 1つの理由は、私は多くの3番目の部分のコンポーネントを使用して好きではない、別の理由は、私の所有コンポーネントのすべてのコードと私のアプリケーションはnethttpclientに基づいています。 1つの機能を得るためにコンポーネントを変更することは望ましくありません。 – HenryXu

関連する問題