次の方法で共有


HttpSendRequestA 関数 (wininet.h)

指定した要求を HTTP サーバーに送信します。これにより、呼び出し元は通常 httpsendRequestExに通常渡されるデータを超えるデータ 送信できます。

構文

BOOL HttpSendRequestA(
  [in] HINTERNET hRequest,
  [in] LPCSTR    lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] LPVOID    lpOptional,
  [in] DWORD     dwOptionalLength
);

パラメーター

[in] hRequest

HttpOpenRequest 関数の呼び出しによって返されるハンドル。

[in] lpszHeaders

要求に追加する追加のヘッダーを含む、null終了文字列へのポインター。 追加する追加のヘッダーがない場合は、このパラメーターを NULL できます。

[in] dwHeadersLength

追加ヘッダーのサイズ (TCHAR)。 このパラメーターが -1L で、lpszHeaders が NULLでない場合、この関数は lpszHeaders が 0 で終わる (ASCIIZ) ことを前提とし、長さが計算されます。 詳細については、「解説」を参照してください。

[in] lpOptional

要求ヘッダーの直後に送信される任意のデータを含むバッファーへのポインター。 このパラメーターは、通常、POST および PUT 操作に使用されます。 オプションのデータには、サーバーにポストされるリソースまたは情報を指定できます。 送信する省略可能なデータがない場合、このパラメーターは NULL を できます。

[in] dwOptionalLength

省略可能なデータのサイズ (バイト単位)。 送信する省略可能なデータがない場合、このパラメーターは 0 にすることができます。

戻り値

成功した場合 TRUE を返し、それ以外の場合は FALSE 返します。 拡張エラー情報を取得するには、GetLastError呼び出します。

備考

HttpSendRequest 指定された要求を HTTP サーバーに送信し、クライアントが要求と共に送信する追加のヘッダーを指定できるようにします。

この関数を使用すると、クライアントは、要求ヘッダーの直後に HTTP サーバーに送信するオプションのデータを指定することもできます。 この機能は、通常、PUT や POST などの "書き込み" 操作に使用されます。

要求が送信されると、HTTP サーバーからの状態コードと応答ヘッダーが読み取られます。 これらのヘッダーは内部的に管理され、HttpQueryInfo 関数を介してクライアント アプリケーションで使用できます。

アプリケーションは、HttpSendRequestを する複数の呼び出しで同じ HTTP 要求ハンドルを使用できますが、アプリケーションは、関数を再度呼び出す前に、前の呼び出しから返されたすべてのデータを読み取る必要があります。

オフライン モードでは、HttpSendRequest は、リソースがインターネット キャッシュに見つからない場合に ERROR_FILE_NOT_FOUND を返します。

HttpSendRequestには、httpSendRequestA (ANSI ビルドで使用)と HttpSendRequestW (Unicode ビルドで使用) の 2 つのバージョンがあります。 dwHeadersLength が -1L され、lpszHeaders が NULLされていない場合、次のことが発生します。httpSendRequestA 呼び出されると、この関数は lpszHeaders が 0 で終わる (ASCIIZ) と見なされ、長さが計算されます。 HttpSendRequestW 呼び出されると、関数は ERROR_INVALID_PARAMETERで失敗します。

HttpSendRequestA 関数は、ヘッダーを ANSI 文字ではなく ISO-8859-1 文字として表します。 HttpSendRequestW 関数は、UTF-16LE 文字に変換された ISO-8859-1 文字としてヘッダーを表します。 その結果、追加するヘッダーに非 ASCII 文字を含めることができる場合、HttpSendRequestW 関数を使用しても安全ではありません。 代わりに、アプリケーションは multiByteToWideChar を使用し、Codepage パラメーターを 28591 に設定して WideCharToMultiByte 関数を して、ANSI 文字と UTF-16LE 文字の間でマップできます。
 
WinINet API の他のすべての側面と同様に、この関数は DllMain またはグローバル オブジェクトのコンストラクターとデストラクターから安全に呼び出すことはできません。
注意 WinINet では、サーバーの実装はサポートされていません。 また、サービスから使用しないでください。 サーバーの実装またはサービスの場合は、Microsoft Windows HTTP Services (WinHTTP)を使用します。
 

手記

wininet.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして HttpSendRequest を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー wininet.h
ライブラリ Wininet.lib
DLL Wininet.dll

関連項目

HTTP セッション

WinINet Functions の