メインコンテンツへスキップ

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 本体

関連項目

httpClient
HCHttpCallProgressReportFunction
HCHttpCallRequestSetDynamicSize
最終更新日 2026年10月30日