HCHttpCallRequestSetProgressReportFunction
HTTP 呼び出しが本文をアップロードまたはダウンロードしている間に進行状況を報告するコールバックを設定します。構文
パラメーター
call _In_型: HCCallHandle HTTP 呼び出しのハンドル。 progressReportFunction _In_
型: HCHttpCallProgressReportFunction 進行状況レポートを受け取るコールバック。 isUploadFunction _In_
型: bool 要求本文 (アップロード) の進行状況を受け取るには
true を渡します。応答本文 (ダウンロード) の進行状況を受け取るには false を渡します。
minimumProgressReportInterval _In_型: size_t 2 つの進行状況レポート間の最小時間 (秒単位)。0 より大きくする必要があります。 context _In_opt_
型: void* コールバックに渡されるオプションのポインター。
戻り値
型: HRESULT この API 操作の結果コード。ヘッダーにはS_OK または E_INVALIDARG が記載されています。また、呼び出しが既に実行されている場合は E_HC_PERFORM_ALREADY_CALLED を、libHttpClient が初期化されていない場合は E_HC_NOT_INITIALISED を返します。
解説
この関数は HCHttpCallPerformAsync を呼び出す前に呼び出してください。 call または progressReportFunction がnullptr の場合、または minimumProgressReportInterval が 0 の場合、この関数は E_INVALIDARG を返します。
アップロードとダウンロードの進行状況は個別に登録されます。両方を追跡するには、この関数を 2 回呼び出します。1 回は isUploadFunction を true に設定し、もう 1 回は false に設定します。同じ方向に対して再度呼び出すと、以前のコールバックが置き換えられます。
libHttpClient は、プラットフォームに依存する不特定のバックグラウンド スレッドでコールバックを呼び出します。
組み込みの WinHTTP プロバイダーでは、進行状況コールバックが失敗を返すと現在の試行が終了し、呼び出しのネットワーク エラーとして記録されます。通常の再試行ポリシーにより、別の試行が開始される場合があります。最終的な完了後に、HCHttpCallResponseGetNetworkErrorCode を確認してください。非同期の完了状態は、コールバックの失敗と一致するとは限りません。
送信バイト以外の単位 (たとえば、HCHttpCallRequestBodyReadFunction コールバックが消費する非圧縮バイト) でアップロードの進行状況を報告するには、HCHttpCallPerformAsync を呼び出す前に合計を指定して HCHttpCallRequestSetDynamicSize を呼び出し、HCHttpCallRequestAddDynamicBytesWritten で増分を報告します。この合計は呼び出しの開始前にわかっている必要があります。アップロードの進行状況では、それらの値が報告されます。HCHttpCallRequestSetRequestBodyReadFunction に渡す bodySize は、引き続き送信する正確なバイト数である必要があります。libHttpClient が呼び出しを再試行しても、動的バイト数はリセットされません。
要件
ヘッダー: httpClient.h ライブラリ: libHttpClient.lib サポートされているプラットフォーム: Windows、XBOX One ファミリー本体および XBOX Series 本体関連項目
httpClientHCHttpCallProgressReportFunction
HCHttpCallRequestSetDynamicSize
