WinHttpSendRequest

指定のリクエストを HTTP サーバーに送信する。(WinHttpSendRequest)

WinHttpSendRequest hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength, dwTotalLength, dwContext

hRequest : [intptr] WinHttpOpenRequest が返した HINTERNET ハンドル。
lpszHeaders : [wstr] リクエストに追加するヘッダ文字列へのポインタ。追加ヘッダがなければ WINHTTP_NO_ADDITIONAL_HEADERS を指定する。
dwHeadersLength : [int] 追加ヘッダの長さ(文字単位)。-1L で pwszHeaders が NULL でない場合は NULL 終端とみなして計算する。
lpOptional : [intptr] リクエストヘッダ直後に送信するオプションデータを含むバッファへのポインタ。通常 POST/PUT で使用する。送らない場合は WINHTTP_NO_REQUEST_DATA を指定する。dwOptionalLength が 0 なら無視され NULL に設定される。本バッファはリクエストハンドルが閉じられるか WinHttpReceiveResponse が完了するまで有効である必要がある。
dwOptionalLength : [int] オプションデータの長さ(バイト単位)。送らない場合は 0 を指定する。lpOptional が NULL でない場合は有効な長さを指定する必要がある。
dwTotalLength : [int] 送信する合計データ長(バイト単位)。リクエストの Content-Length ヘッダに設定される。dwOptionalLength を超える場合、WinHttpWriteData で追加データを送信できる。同じリクエストの WinHttpSendRequest 呼び出し間で変更してはならず、必要なら新しいリクエストを作成すること。
dwContext : [int] リクエストハンドルと共にコールバック関数に渡される、アプリケーション定義値を保持するポインタサイズの変数へのポインタ。

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

解説

指定のリクエストを HTTP サーバーに送信する。(WinHttpSendRequest)

[戻り値]
成功時は TRUE、失敗時は FALSE。拡張エラー情報は GetLastError で取得する。エラーコード一覧は以下の通り。
(以下省略)

[備考]
非同期モードでは同期/非同期のどちらでも動作する。いずれの場合も送信成功時
WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE が呼ばれる。これを受けてから
WinHttpReceiveResponse を呼び、それ以前に他の非同期関数を呼ぶと
ERROR_WINHTTP_INCORRECT_HANDLE_STATE を返す。lpOptional
が指すバッファはリクエストハンドルが閉じられるか WinHttpReceiveResponse
が完了するまで変更/削除しないこと。同期モードでは応答を受信するには WinHttpSendRequest 復帰後に
WinHttpReceiveResponse
を呼べばよい。同じリクエストハンドルで複数回呼び出して同じリクエストを再送できるが、前回の全データを読み終わってから呼び出すこと。

情報

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