HttpReceiveHttpRequest

指定リクエストキューから次の利用可能な HTTP リクエストを同期または非同期で取得する。

HttpReceiveHttpRequest RequestQueueHandle, RequestId, Flags, RequestBuffer, RequestBufferLength, BytesReturned, Overlapped

RequestQueueHandle : [intptr] 次に利用可能なリクエストを取得するリクエストキューへのハンドル。リクエストキューは HttpCreateRequestQueue で作成される。Windows Server 2003 SP1 および Windows XP SP2 ではハンドルは HttpCreateHttpHandle により作成される。
RequestId : [int64] 最初の呼び出し時は HTTP_NULL_ID を指定する。リクエスト全体を取得するのに複数回呼び出しが必要な場合は、pRequestBuffer が指す HTTP_REQUEST の RequestId メンバで返された値を RequestID に設定して HttpReceiveHttpRequest または HttpReceiveRequestEntityBody を呼び出す。
Flags : [int] 
RequestBuffer : [var] HTTP_REQUEST 構造体とエンティティボディがコピーされるバッファへのポインタ。HTTP_REQUEST.RequestId はこの HTTP リクエストの識別子を含み、後続の HttpReceiveRequestEntityBodyHttpSendHttpResponseHttpSendResponseEntityBody で使用できる。
RequestBufferLength : [int] pRequestBuffer バッファのサイズ (バイト単位)。
BytesReturned : [var] 任意。エンティティボディまたはその残りのバイトサイズを受け取る変数へのポインタ。pOverlapped で非同期呼び出しをする場合は pBytesReceived を NULL にする。同期の場合は有効なアドレスが必要である。
Overlapped : [var] 非同期呼び出しの場合は pOverlapped に OVERLAPPED 構造体へのポインタを設定する。同期呼び出しの場合は NULL にする。同期呼び出しはリクエスト到着まで、あるいはその一部が取得されるまでブロックする。

(プラグイン / モジュール : httpapi.dll)

解説

指定リクエストキューから次の利用可能な HTTP リクエストを同期または非同期で取得する。

[戻り値]
関数が成功すると戻り値は NO_ERROR となる。非同期の場合 ERROR_IO_PENDING
は次のリクエストがまだ準備できていないことを示す。関数が失敗した場合、戻り値は次のいずれかのエラーコードとなる。このドキュメントは省略されている。

[備考]
1 つのリクエストを取得するのに複数回の呼び出しが必要になることがある。Flags が 0 の場合
HttpReceiveHttpRequest
はリクエストヘッダ構造体だけをバッファにコピーし、エンティティボディはコピーしない。エンティティボディは
HttpReceiveRequestEntityBody で取得するか、HttpReceiveHttpRequest
を再度呼ぶ。アプリが提供するバッファが小さすぎる場合もある。少なくとも 4 KB のバッファを用意することを推奨する (多くの HTTP
リクエストに対応する)。認証ヘッダは最大 12 KB 追加され得るので、認証/認可を使う場合は少なくとも 16 KB
を推奨する。HttpReceiveHttpRequest が ERROR_MORE_DATA を返した場合、最初の呼び出しで返された
HTTP_REQUEST.RequestId を渡しつつ ERROR_HANDLE_EOF が返るまで追加呼び出しを続ける。注:
アプリケーションは全関連リクエストヘッダ (コンテンツネゴシエーションヘッダを含む)
を検査し、必要に応じてリクエストを失敗させる必要がある。HttpReceiveHttpRequest
はヘッダ行の終端と不正文字非含有を保証するだけである。

情報

プラグイン / モジュールhttpapi.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の httpapi.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_httpapi_gen2.hs