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

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;否则返回 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 标头将 HttpAddRequestHeaders 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 wininet.h
Wininet.lib
DLL Wininet.dll

另请参阅

HTTP 会话

WinINet 函数