HttpSendRequestExW

指定されたリクエストを HTTP サーバーに送信する。(HttpSendRequestExW)

HttpSendRequestExW hRequest, lpBuffersIn, lpBuffersOut, dwFlags, dwContext

hRequest : [intptr] HttpOpenRequest 関数の呼び出しから返されたハンドル。
lpBuffersIn : [var] 省略可能。INTERNET_BUFFERS 構造体へのポインタ。
lpBuffersOut : [var] 予約済み。NULL を指定しなければならない。
dwFlags : [int] 予約済み。0 を指定しなければならない。
dwContext : [int] ステータスコールバック関数が登録されている場合に使用される、アプリケーション定義のコンテキスト値。

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

解説

指定されたリクエストを HTTP サーバーに送信する。(HttpSendRequestExW)

[戻り値]
関数が成功した場合、戻り値は TRUE である。
関数が失敗した場合、戻り値は FALSE である。拡張エラー情報を取得するには GetLastError を呼び出す。

[備考]
HttpSendRequestEx はレスポンスの送信と受信の両方を実行する。これにより、アプリケーションは
HttpSendRequestEx に渡された単一バッファ以外の余分なデータを送信できない。HttpSendRequestEx
に通常渡される範囲を超えて余分なデータを送信する必要がある呼び出し側は、代わりに HttpSendRequest
を呼び出すことができる。HttpSendRequestEx の呼び出し後、InternetWriteFile
を呼び出して残りのデータを送信する。最後に HttpEndRequest の呼び出しで処理を完了する。注意:
HttpSendRequestExA 関数は送信するデータを ANSI 文字ではなく ISO-8859-1
文字として表現する。HttpSendRequestExW 関数は送信するデータを ISO-8859-1 文字を UTF-16LE
文字に変換したものとして表現する。その結果、追加するヘッダーに非 ASCII
文字を含む可能性がある場合、HttpSendRequestExW 関数を使用するのは決して安全ではない。代わりにアプリケーションは
MultiByteToWideChar および WideCharToMultiByte 関数で Codepage パラメータに 28591
を指定し、ANSI 文字と UTF-16LE 文字の間でマッピングできる。注意: WinINet
はサーバー実装をサポートしていない。さらに、サービスから使用すべきでもない。サーバー実装やサービスでは Microsoft Windows
HTTP Services (WinHTTP) を使用すること。
> [!NOTE] > wininet.h ヘッダーは HttpSendRequestEx をエイリアスとして定義しており、UNICODE
プリプロセッサ定数の定義に基づいて本関数の ANSI 版または Unicode
版を自動的に選択する。エンコーディング中立のエイリアスとエンコーディング中立でないコードを混在させると、コンパイルエラーや実行時エラーの原因となるミスマッチが発生する可能性がある。詳細は
[Conventions for Function
Prototypes](/windows/win32/intl/conventions-for-function-prototypes)
を参照のこと。

情報

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