共用方式為


HttpAddRequestHeadersW 函式 (wininet.h)

將一或多個 HTTP 要求標頭新增至 HTTP 要求句柄。

語法

BOOL HttpAddRequestHeadersW(
  [in] HINTERNET hRequest,
  [in] LPCWSTR   lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] DWORD     dwModifiers
);

參數

[in] hRequest

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

[in] lpszHeaders

字串變數的指標,其中包含要附加至要求的標頭。 每個標頭都必須由CR/LF(歸位字元/換行字元)配對終止。

[in] dwHeadersLength

TCHAlpszHeaders 的大小。 如果此參數為 -1L,則函式會假設 lpszHeaders 為零終止 (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 true,否則會 傳回 false。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

言論

HttpAddRequestHeaders 將額外的自由格式標頭附加至 HTTP 要求句柄,且適用於需要詳細控制傳送至 HTTP 伺服器之確切要求的複雜用戶端使用。

請注意,對於基本 HttpAddRequestHeaders,應用程式可以在單一緩衝區中傳入多個標頭。 如果應用程式嘗試移除或取代標頭,lpszHeaders中只能提供一個標頭。

附註 HttpAddRequestHeadersA 函式會將標頭表示為 ISO-8859-1 字元,而不是 ANSI 字元。 HttpAddRequestHeadersW 函式會將標頭表示為轉換為 UTF-16LE 字元的 ISO-8859-1 字元。 因此,當要加入的標頭可以包含非 ASCII 字元時,使用 HttpAddRequestHeadersW 函式絕對不安全。 相反地,應用程式可以使用 MultiByteToWideCharWideCharToMultiByte 函式搭配設定為 28591 的 Codepage 參數來對應 ANSI 字元和 UTF-16LE 字元。
 
如同 WinINet API 的其他所有層面,無法從 DllMain 或全域物件的建構函式和解構函式安全地呼叫此函式。
注意 WinINet 不支援伺服器實作。 此外,不應該從服務使用。 針對伺服器實作或服務,請使用 Microsoft Windows HTTP 服務 (WinHTTP)
 

注意

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

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 wininet.h
連結庫 Wininet.lib
DLL Wininet.dll

另請參閱

HTTP 工作階段

WinINet 函式