HTTPQueryInfoW 函式 (wininet.h)

擷取與 HTTP 要求相關聯的標頭資訊。

語法

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

參數

[in] hRequest

呼叫 HttpOpenRequestInternetOpenUrl 函式所傳回的控制碼。

[in] dwInfoLevel

要擷取的屬性組合,以及修改要求的旗標。 如需可能的屬性和修飾詞值清單,請參閱 查詢資訊旗標

[in, out] lpBuffer

要接收所要求資訊的緩衝區指標。 此參數不得為 Null

[in, out] lpdwBufferLength

變數的指標,其中包含 lpvBuffer所指向之緩衝區的大小,以位元組為單位。

當函式成功傳回時,此變數會包含寫入緩衝區的資訊位元組數。 在字串的情況下,位元組計數不包含字串的終止 Null 字元。

函式的時機
失敗並出現擴充的錯誤碼 ERROR_INSUFFICIENT_BUFFERlpdwBufferLength 所指向的變數會在結束時包含大小,以位元組為單位,緩衝區的大小足以接收要求的資訊。 呼叫的應用程式接著可以配置這個大小或更大的緩衝區,然後再次呼叫函式。

[in, out] lpdwIndex

以零起始之標頭索引的指標,用來列舉具有相同名稱的多個標頭。 呼叫 函式時,此參數是要傳回之指定標頭的索引。 當函式傳回時,此參數是下一個標頭的索引。 如果找不到下一個索引,則會傳回 ERROR_HTTP_HEADER_NOT_FOUND

傳回值

如果成功,則傳回 TRUE ,否則傳回 FALSE 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

您可以從 HttpQueryInfo擷取下列資料類型:

  • 字串 (預設)
  • 日期) 的 SYSTEMTIME (
  • STATUS_CODECONTENT_LENGTH等的DWORD (,如果使用HTTP_QUERY_FLAG_NUMBER)

如果您的應用程式要求將資料傳回為字串以外的資料類型,您必須將適當的修飾詞包含在傳遞至 dwInfoLevel的屬性中。

Microsoft Internet Explorer 3.0 中提供 HttpQueryInfo 函式,適用于 ISO-8859-1 字元, (HttpQueryInfoA 函式) 和 Internet Explorer 4.0 或更新版本中適用于 ISO-885 (HttpQueryInfoA 函式) 和轉換成 UTF-16LE 字元的 ISO-8859-1 字元, (HttpQueryInfoW 函式) 的 9-1 個字元。

注意HttpQueryInfoA函式會將標頭表示為 ISO-8859-1 字元,而不是 ANSI 字元。 HttpQueryInfoW函式會將標頭表示為轉換成 UTF-16LE 字元的 ISO-8859-1 字元。 因此,當標頭可以包含非 ASCII 字元時,使用 HttpQueryInfoW 函式絕對不安全。 相反地,應用程式可以使用 MultiByteToWideCharWideCharToMultiByte 函式,並將 Codepage 參數設定為 28591,以在 ANSI 字元與 UTF-16LE 字元之間對應。
 
如需呼叫HttpQueryInfo函式的範例程式碼,請參閱擷取 HTTP 標頭

就像 WinINet API 所有其他層面一樣,您無法從 DllMain 或全域物件的建構函式和解構函式安全地呼叫此函式。

注意 WinINet 不支援伺服器實作。 此外,不應該從服務使用它。 對於伺服器實作或服務,請使用 Microsoft Windows HTTP Services (WinHTTP)
 

注意

wininet.h 標頭會將 HttpQueryInfo 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 wininet.h
程式庫 Wininet.lib
Dll Wininet.dll

另請參閱

HTTP 會話

擷取 HTTP 標頭

WinINet 函式