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

呼叫 HttpOpenRequestInternetOpenUrl 函式所傳回的句柄。

[in] dwInfoLevel

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

[in, out] lpBuffer

要接收所要求信息的緩衝區指標。 此參數不得為 NULL

[in, out] lpdwBufferLength

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

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

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

[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 函式