共用方式為


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

TCHARlpszHeaders的大小。 如果此參數為 -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 ,否則傳回 FALSE 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

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

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

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

注意

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

規格需求

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

另請參閱

HTTP 會話

WinINet 函式