WinHttpAddRequestHeadersEx 函数 (winhttp.h)

将一个或多个 HTTP 请求标头添加到 HTTP 请求句柄,从而允许使用单独的名称/值字符串。

语法

WINHTTPAPI DWORD WinHttpAddRequestHeadersEx(
  HINTERNET               hRequest,
  DWORD                   dwModifiers,
  ULONGLONG               ullFlags,
  ULONGLONG               ullExtra,
  DWORD                   cHeaders,
  WINHTTP_EXTENDED_HEADER *pHeaders
);

参数

hRequest

类型:在 HINTERNET 中

调用 WinHttpOpenRequest 返回的 HINTERNET 句柄。

dwModifiers

类型:IN DWORD

一个无符号长整数值,该值包含用于修改此函数语义的标志。 可以是以下一个或多个标志。

含义
WINHTTP_ADDREQ_FLAG_ADD
如果标头不存在,则添加该标头。 与 WINHTTP_ADDREQ_FLAG_REPLACE 一起使用。
WINHTTP_ADDREQ_FLAG_ADD_IF_NEW
仅当标头尚不存在时才添加标头;否则,将返回错误。
WINHTTP_ADDREQ_FLAG_COALESCE
合并同名的标头。
WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA
使用逗号合并同名的标头。 例如,使用此标志添加“Accept: text/*”后跟“Accept: audio/*”会导致单个标头“Accept: text/*, audio/*”。 这会导致合并找到的第一个标头。 调用应用程序必须确保与合并和单独的标头相关的内聚方案。
WINHTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON
使用分号合并同名的标头。
WINHTTP_ADDREQ_FLAG_REPLACE
替换或删除标头。 如果标头值为空且找到标头,则会将其删除。 如果值不为空,则将其替换。

ullFlags

类型:IN ULONGLONG

传递 WINHTTP_EXTENDED_HEADER_FLAG_UNICODE 指示传入的字符串是 Unicode 字符串。

ullExtra

类型:IN ULONGLONG

保留。

cHeaders

类型:IN DWORD

pHeaders 中的元素数。

pHeaders

类型:_In_reads_ (cHeaders) WINHTTP_EXTENDED_HEADER*

WINHTTP_EXTENDED_HEADER 结构的数组。

返回值

指示操作结果的状态代码。 返回的错误代码如下。

错误代码 说明
ERROR_WINHTTP_INCORRECT_HANDLE_STATE
无法执行请求的操作,因为提供的句柄未处于正确的状态。
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
此操作提供的句柄类型不正确。
ERROR_WINHTTP_INTERNAL_ERROR
发生了内部错误。
ERROR_NOT_ENOUGH_MEMORY
内存不足,无法完成请求的操作。

要求

要求
最低受支持的客户端 Windows 10内部版本 20348
最低受支持的服务器 Windows 10内部版本 20348
目标平台 Windows
标头 winhttp.h
Library Winhttp.lib
DLL Winhttp.dll

另请参阅