HTTPAddRequestHeadersA 函式 (wininet.h)

將一或多個 HTTP 要求標頭新增至 HTTP 要求控制碼。

語法

BOOL HttpAddRequestHeadersA(
  [in] HINTERNET hRequest,
  [in] LPCSTR    lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] DWORD     dwModifiers
);

參數

[in] hRequest

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

[in] lpszHeaders

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

[in] dwHeadersLength

TCHAR中的lpszHeaders大小。 如果此參數為 -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 Services (WinHTTP)
 

注意

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

規格需求

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

另請參閱

HTTP 會話

WinINet 函式