HttpAddRequestHeadersA 関数 (wininet.h)

HTTP 要求ハンドルに 1 つ以上の HTTP 要求ヘッダーを追加します。

構文

BOOL HttpAddRequestHeadersA(
  [in] HINTERNET hRequest,
  [in] LPCSTR    lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] DWORD     dwModifiers
);

パラメーター

[in] hRequest

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

[in] lpszHeaders

要求に追加するヘッダーを含む文字列変数へのポインター。 各ヘッダーは、CR/LF (キャリッジ リターン/ライン フィード) ペアで終了する必要があります。

[in] dwHeadersLength

TCHAR での lpszHeaders のサイズ。 このパラメーターが -1L の場合、関数は lpszHeaders が 0 で終わる (ASCIIZ) と見なされ、長さが計算されます。

[in] dwModifiers

この関数のセマンティクスを制御する修飾子のセット。 このパラメーターは、次の値と組み合わせて使用できます。

説明
HTTP_ADDREQ_FLAG_ADD
存在しない場合は、ヘッダーを追加します。 HTTP_ADDREQ_FLAG_REPLACEで使用されます。
HTTP_ADDREQ_FLAG_ADD_IF_NEW
ヘッダーがまだ存在しない場合にのみ、ヘッダーを追加します。それ以外の場合は、エラーが返されます。
HTTP_ADDREQ_FLAG_COALESCE
同じ名前のヘッダーを結合します。
HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA
同じ名前のヘッダーを結合します。 たとえば、このフラグで "Accept: text/*" の後に "Accept: audio/*" を追加すると、単一ヘッダー "Accept: text/*, audio/*" が形成されます。 これにより、最初に検出されたヘッダーが結合されます。 結合されたヘッダーまたは個別のヘッダーに関するまとまりのあるスキームを確保するのは、呼び出し元のアプリケーションにかかっています。
HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON
セミコロンを使用して、同じ名前のヘッダーを結合します。
HTTP_ADDREQ_FLAG_REPLACE
ヘッダーを置換または削除します。 ヘッダー値が空で、ヘッダーが見つかった場合は削除されます。 空でない場合は、ヘッダー値が置き換えられます。

戻り値

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

解説

HttpAddRequestHeaders は、HTTP 要求ハンドルに追加のフリーフォーマット ヘッダーを追加し、HTTP サーバーに送信される正確な要求を詳細に制御する必要がある高度なクライアントで使用することを目的としています。

基本的な HttpAddRequestHeaders の場合、アプリケーションは 1 つのバッファーに複数のヘッダーを渡すことができます。 アプリケーションがヘッダーを削除または置換しようとしている場合は、 lpszHeaders で指定できるヘッダーは 1 つだけです。

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

注意

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

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wininet.h
Library Wininet.lib
[DLL] Wininet.dll

関連項目

HTTP セッション

WinINet 関数