次の方法で共有


CHttpFile::QueryInfo

更新 : 2007 年 11 月

HTTP 要求からの応答ヘッダーまたは要求ヘッダーを返します。

BOOL QueryInfo(
   DWORD dwInfoLevel,
   LPVOID lpvBuffer,
   LPDWORD lpdwBufferLength,
   LPDWORD lpdwIndex = NULL 
) const;
BOOL QueryInfo(
   DWORD dwInfoLevel,
   CString& str,
   LPDWORD dwIndex = NULL 
) const;
BOOL QueryInfo(
   DWORD dwInfoLevel,
   SYSTEMTIME* pSysTime,
   LPDWORD dwIndex = NULL 
) const;

パラメータ

  • dwInfoLevel
    問い合わせの属性と、要求された情報の種別を指定する以下のフラグの組み合わせです。

    • HTTP_QUERY_CUSTOM ヘッダー名を検索し、この値を出力として lpvBuffer へ返します。ヘッダーが見つからない場合、HTTP_QUERY_CUSTOM はアサートします。

    • HTTP_QUERY_FLAG_REQUEST_HEADERS 通常、アプリケーションは応答ヘッダーを問い合わせます。このフラグを使うことによって、アプリケーションは要求ヘッダーを問い合わせることもできます。

    • HTTP_QUERY_FLAG_SYSTEMTIME "Last-Modified-Time" などの日付/時刻文字列の値を持つヘッダーの場合、このフラグは、ヘッダーの値を Win32 の標準 SYSTEMTIME 構造体として返します。この場合、アプリケーションでデータを解析する必要はありません。このフラグを使用するときは、SYSTEMTIME を使用するように関数をオーバーライドすると便利です。

    • HTTP_QUERY_FLAG_NUMBER ステータス コードなどのように値が数値のヘッダーの場合、このフラグは、32 ビットの数値としてデータを返します。

    使用できる値の一覧については、「解説」を参照してください。

  • lpvBuffer
    情報を受け取るバッファへのポインタ。

  • lpdwBufferLength
    呼び出し時には、文字数またはバイト数でデータ バッファの長さが入っている値へのポインタ。このパラメータの詳細については、「解説」を参照してください。

  • lpdwIndex
    0 から始まるヘッダー インデックスへのポインタ。NULL の場合もあります。同一名の複数のヘッダーを列挙するために使用します。入力時の lpdwIndex は、返されるヘッダーのインデックスを示します。出力時の lpdwIndex は、次のヘッダーのインデックスを示します。次のインデックスが見つからない場合、ERROR_HTTP_HEADER_NOT_FOUND が返されます。

  • str
    返される情報を受け取る CString オブジェクトへの参照。

  • dwIndex
    インデックス。lpdwIndex を参照してください。

  • pSysTime
    Win32 の SYSTEMTIME 構造体へのポインタ。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。呼び出しに失敗した場合は、Win32 の関数 GetLastError を呼び出してエラーの原因を調査できます。

解説

SendRequest の呼び出しに成功した場合、または OpenURL による CHttpFile オブジェクトの作成に成功した場合だけ、このメンバ関数を使用してください。

QueryInfo では、以下の種類のデータを取得できます。

  • 文字列 (既定)

  • SYSTEMTIME ("Data:" "Expires:" などのヘッダーの場合)

  • DWORD (STATUS_CODECONTENT_LENGTH などの場合)

文字列がバッファへ書き込まれ、メンバ関数の呼び出しが成功した場合、lpdwBufferLength には文字列の長さとして、文字数 -1 が入ります。-1 は終端の NULL 文字分を示します。

dwInfoLevel に使用できる値の一覧を次に示します。

  • HTTP_QUERY_MIME_VERSION

  • HTTP_QUERY_CONTENT_TYPE

  • HTTP_QUERY_CONTENT_TRANSFER_ENCODING

  • HTTP_QUERY_CONTENT_ID

  • HTTP_QUERY_CONTENT_DESCRIPTION

  • HTTP_QUERY_CONTENT_LENGTH

  • HTTP_QUERY_ALLOWED_METHODS

  • HTTP_QUERY_PUBLIC_METHODS

  • HTTP_QUERY_DATE

  • HTTP_QUERY_EXPIRES

  • HTTP_QUERY_LAST_MODIFIED

  • HTTP_QUERY_MESSAGE_ID

  • HTTP_QUERY_URI

  • HTTP_QUERY_DERIVED_FROM

  • HTTP_QUERY_LANGUAGE

  • HTTP_QUERY_COST

  • HTTP_QUERY_WWW_LINK

  • HTTP_QUERY_PRAGMA

  • HTTP_QUERY_VERSION

  • HTTP_QUERY_STATUS_CODE

  • HTTP_QUERY_STATUS_TEXT

  • HTTP_QUERY_RAW_HEADERS

  • HTTP_QUERY_RAW_HEADERS_CRLF

必要条件

ヘッダー : afxinet.h

参照

参照

CHttpFile クラス

階層図

CInternetFile クラス

CHttpConnection::OpenRequest

CFtpConnection クラス

CGopherConnection クラス

CInternetConnection クラス

その他の技術情報

CHttpFile のメンバ