HttpQueryInfoA 関数 (wininet.h)

HTTP 要求に関連付けられているヘッダー情報を取得します。

構文

BOOL HttpQueryInfoA(
  [in]      HINTERNET hRequest,
  [in]      DWORD     dwInfoLevel,
  [in, out] LPVOID    lpBuffer,
  [in, out] LPDWORD   lpdwBufferLength,
  [in, out] LPDWORD   lpdwIndex
);

パラメーター

[in] hRequest

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

[in] dwInfoLevel

取得する属性と要求を変更するフラグの組み合わせ。 使用できる属性と修飾子の値の一覧については、「 クエリ情報フラグ」を参照してください。

[in, out] lpBuffer

要求された情報を受信するバッファーへのポインター。 このパラメーターは NULL にすることはできません。

[in, out] lpdwBufferLength

エントリ時に、 lpvBuffer が指すバッファーのサイズ (バイト単位) を含む変数へのポインター。

関数が正常に返されると、この変数にはバッファーに書き込まれた情報のバイト数が含まれます。 文字列の場合、バイト数には文字列の終端 の null 文字は含まれません。

関数が
ERROR_INSUFFICIENT_BUFFERの拡張エラー コードで失敗します。lpdwBufferLength が指す変数には、要求された情報を受信するのに十分な大きさのバッファーのサイズ (バイト単位) が含まれています。 呼び出し元のアプリケーションは、このサイズ以上のバッファーを割り当ててから、関数を再度呼び出すことができます。

[in, out] lpdwIndex

同じ名前の複数のヘッダーを列挙するために使用される 0 から始まるヘッダー インデックスへのポインター。 関数を呼び出すとき、このパラメーターは、返される指定されたヘッダーのインデックスです。 関数が戻るときに、このパラメーターは次のヘッダーのインデックスです。 次のインデックスが見つからない場合は、 ERROR_HTTP_HEADER_NOT_FOUND が返されます。

戻り値

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

解説

HttpQueryInfo から次の種類のデータを取得できます。

  • 文字列 (既定値)
  • SYSTEMTIME (日付の場合)
  • DWORD (HTTP_QUERY_FLAG_NUMBERが使用されている場合はSTATUS_CODE、CONTENT_LENGTHなど)

アプリケーションでデータを文字列以外のデータ型として返す必要がある場合は、 dwInfoLevel に渡される属性を持つ適切な修飾子を含める必要があります。

HttpQueryInfo 関数は、ISO-8859-1 文字 (HttpQueryInfoA 関数) の場合は Microsoft Internet エクスプローラー 3.0、ISO-8859-1 文字 (HttpQueryInfoA 関数) の場合はインターネット エクスプローラー 4.0 以降、UTF-16LE 文字に変換された ISO-8859-1 文字では使用できます。(HttpQueryInfoW 関数)。

メモHttpQueryInfoA 関数は、ヘッダーを ANSI 文字ではなく ISO-8859-1 文字として表します。 HttpQueryInfoW 関数は、UTF-16LE 文字に変換された ISO-8859-1 文字としてヘッダーを表します。 その結果、ヘッダーに ASCII 以外の文字を含めることができる場合は、 HttpQueryInfoW 関数を使用しても安全ではありません。 代わりに、アプリケーションで MultiByteToWideChar 関数と WideCharToMultiByte 関数を使用し、 Codepage パラメーターを 28591 に設定して、ANSI 文字と UTF-16LE 文字をマップできます。
 
HttpQueryInfo 関数を呼び出すコード例については、「HTTP ヘッダーの取得」を参照してください。

WinINet API の他のすべての側面と同様に、この関数を DllMain またはグローバル オブジェクトのコンストラクターとデストラクター内から安全に呼び出すことはできません。

メモ WinINet では、サーバーの実装はサポートされていません。 また、サービスから使用しないでください。 サーバーの実装またはサービスの場合は、 Microsoft Windows HTTP サービス (WinHTTP) を使用します。
 

注意

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

要件

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

こちらもご覧ください

HTTP セッション

HTTP ヘッダーの取得

WinINet 関数