选项标志

WinHttpQueryOption 和 WinHttpSetOption 支持以下选项标志

WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS

默认值为 FALSE。 如果设置为 TRUE,则当客户端应用程序阻止状态回调时,WinHTTP 不保证进度。

客户端应用程序必须格外小心,在回调中执行最少的操作而不阻止,并尽快返回,特别是不得等待任何后续 WinHTTP 调用。 如果不遵循这些准则,则可能会对性能造成负面影响或应用程序挂起。 如果按规定的方式使用,则此选项可以提高性能。

WINHTTP_OPTION_AUTOLOGON_POLICY

设置一个无符号长整数值,该值使用以下值之一指定 自动登录策略

术语 说明
WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH 不使用默认凭据。 请注意,仅当按实际计算机名称指定服务器时,此标志才会生效。 如果通过“localhost”或 IP 地址指定服务器,则它不会生效。
WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW 对所有请求执行使用默认凭据的经过身份验证的登录。
WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM 仅对本地 Intranet 上的请求执行使用默认凭据的经过身份验证的登录。

WINHTTP_OPTION_BACKGROUND_CONNECTIONS

在会话句柄上设置此选项时,必须传递要打开的连接数。 然后,在首次发送请求时,WinHttp 将并行打开多个连接,而不是仅打开一个连接。 这可以提高对同一目标的后续请求的性能,这不会产生建立连接的开销。

WINHTTP_OPTION_CALLBACK

检索指向使用 WinHttpSetStatusCallback 的回调函数集的指针。

WINHTTP_OPTION_CLIENT_CERT_CONTEXT

设置客户端证书上下文。 如果应用程序收到 ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED,则必须调用 WinHttpSetOption 以在重试请求之前提供证书。 作为处理此选项的一部分,WinHttp 对调用方提供的证书上下文调用 CertDuplicateCertificateContext ,以便调用方可以独立释放证书上下文。

注意

应用程序不应尝试在从中检索证书上下文的证书存储上调用 CertCloseStore 时使用 CERT_CLOSE_STORE_FORCE_FLAG 标志关闭证书存储。 可能会发生访问冲突。

当服务器请求客户端证书时, WinHttpSendRequestWinHttpReceiveResponse 将返回 ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED 错误。 如果服务器请求证书但不要求证书,则应用程序可以指定此选项以指示它没有证书。 服务器可以选择其他身份验证方案,或允许匿名访问服务器。 应用程序在 WinHttpSetOptionlpBuffer 参数中提供WINHTTP_NO_CLIENT_CERT_CONTEXT宏,如以下代码示例所示。

BOOL fRet = WinHttpSetOption(hRequest,
                             WINHTTP_OPTION_CLIENT_CERT_CONTEXT,
                             WINHTTP_NO_CLIENT_CERT_CONTEXT,
                             0);

如果服务器需要客户端证书,它可能会发送 403 HTTP 状态代码作为响应。 有关详细信息,请参阅 WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST 选项。

WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST

WinHttpSendRequestWinHttpReceiveResponse 中的错误ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED时,检索SecPkgContext_IssuerListInfoEx结构。 结构中的颁发者列表包含来自服务器的可接受证书颁发机构 (CA) 的列表。 客户端应用程序可以筛选 CA 列表,以检索用于 SSL 身份验证的客户端证书。

或者,如果服务器请求客户端证书,但不需要它,应用程序可以使用 WINHTTP_OPTION_CLIENT_CERT_CONTEXT 选项调用 WinHttpSetOption。 有关详细信息,请参阅 WINHTTP_OPTION_CLIENT_CERT_CONTEXT 选项。

WINHTTP_OPTION_CODEPAGE

设置用于处理 URL (即查询字符串) 的代码页 。 默认编码为 UTF8。

WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH

设置一个无符号长整数值,该值指定是否启用 WinHTTP 身份验证中的 Passport 身份验证。 值可以是下列任一值:

术语 说明
WINHTTP_DISABLE_PASSPORT_AUTH Microsoft Passport 身份验证已禁用。 这是默认设置。
WINHTTP_DISABLE_PASSPORT_KEYRING Passport 密钥环已禁用。 这是默认值。
WINHTTP_ENABLE_PASSPORT_AUTH 已启用 Passport 身份验证。
WINHTTP_ENABLE_PASSPORT_KEYRING Passport 密钥环已启用。

WINHTTP_OPTION_CONNECT_RETRIES

设置或检索一个无符号长整数值,该值包含WinHTTP 尝试连接到主机的次数。 Microsoft Windows HTTP Services (WinHTTP) 每个 Internet 协议 (IP) 地址仅尝试一次。 例如,如果尝试连接到具有 10 个 IP 地址且 WINHTTP_OPTION_CONNECT_RETRIES 设置为 7 的多宿主主机,则 WinHTTP 仅尝试连接到前 7 个 IP 地址。 给定同一组 10 个 IP 地址,如果 WINHTTP_OPTION_CONNECT_RETRIES 设置为 20,WinHTTP 将只尝试 10 个 IP 地址中的每一个地址一次。 如果在指定的尝试次数之后,连接尝试仍然失败,或者连接超时在指定次数之后过期,则会取消请求。 WINHTTP_OPTION_CONNECT_RETRIES的默认值为五次尝试。

WINHTTP_OPTION_CONNECT_TIMEOUT

设置或检索包含超时值的无符号长整数值(以毫秒为单位)。 将此选项设置为无限 (0xFFFFFFFF) 将禁用此计时器。

如果 TCP 连接请求花费的时间超过此超时值,则会取消该请求。 默认超时为 60 秒。 尝试连接到单个主机 (多宿主主机) 的多个 IP 地址时,超时限制针对每个单独的连接。

WINHTTP_OPTION_CONNECTION_INFO

检索源和目标 IP 地址,以及 WinHttpReceiveResponse 返回时生成响应的请求的端口。 应用程序使用 WINHTTP_OPTION_CONNECTION_INFO 选项调用 WinHttpQueryOption,并在 lpBuffer 参数中提供WINHTTP_CONNECTION_INFO结构。 有关详细信息,请参阅 WINHTTP_CONNECTION_INFO

适用于:带 SP2 及更高版本的 Windows XP;Windows 2003 SP1 及更高版本。

WINHTTP_OPTION_CONNECTION_GUID

使用 GUID 标记与 WinHTTP 请求句柄关联的连接。 这允许自定义控制哪些请求使用具有 WINHTTP_OPTION_MATCH_CONNECTION_GUID 选项的连接组。

WINHTTP_OPTION_CONNECTION_STATS_V0

检索请求使用的基础连接的 TCP_INFO_v0 结构。 返回的结构可能包含通过同一连接发送的先前请求的统计信息。

注意

此选项已被 WINHTTP_OPTION_CONNECTION_STATS_V1 取代。

WINHTTP_OPTION_CONNECTION_STATS_V1

检索请求使用的基础连接的 TCP_INFO_v1 结构。 返回的结构可能包含通过同一连接发送的先前请求的统计信息。

WINHTTP_OPTION_CONTEXT_VALUE

设置或检索包含指向与此 HINTERNET 句柄关联的上下文值的指针的DWORD_PTR。 使用缓冲区中存储的值,并为 WINHTTP_OPTION_CONTEXT_VALUE 选项标志分配一个新值。

WINHTTP_OPTION_DECOMPRESSION

设置标志的 DWORD,这些标志确定 WinHTTP 是否会使用压缩的内容编码自动解压缩响应正文。 WinHTTP 还将设置适当的Accept-Encoding标头,替代调用方提供的任何标头。 支持的值是:

术语 说明
WINHTTP_DECOMPRESSION_FLAG_GZIP 解压缩内容编码:gzip 响应。
WINHTTP_DECOMPRESSION_FLAG_DEFLATE 解压缩内容编码:取消响应。
WINHTTP_DECOMPRESSION_FLAG_ALL 使用任何受支持的 Content-Encoding 解压缩响应。

默认情况下,WinHTTP 会将压缩的响应传递给未修改的调用方。

WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING

在 WinHttp 会话句柄上设置此选项可以启用/禁用是否生成服务器证书链。

WINHTTP_OPTION_DISABLE_FEATURE

设置一个无符号长整数值,该值指定使用以下一个或多个标志禁用哪些功能。 请注意,在使用 WinHttpOpenRequest 创建请求句柄之后,以及使用 WinHttpSendRequest 发送请求之前,应仅将此功能传递给请求句柄上的 WinHttpSetOption

术语 说明
WINHTTP_DISABLE_AUTHENTICATION 已禁用自动身份验证。
WINHTTP_DISABLE_COOKIES 已禁用向请求自动添加 Cookie 标头。 此外,返回的 Cookie 不会自动添加到 Cookie 数据库。 禁用 Cookie 可能会导致 Passport 身份验证性能不佳。
WINHTTP_DISABLE_KEEP_ALIVE 禁用连接的保持连接语义。 MSN、NTLM 和其他类型的身份验证需要保持连接语义。
WINHTTP_DISABLE_REDIRECTS 使用 WinHttpSendRequest 发送请求时禁用自动重定向。 如果禁用了自动重定向,则应用程序必须注册回调函数才能使 Passport 身份验证成功。

WINHTTP_OPTION_DISABLE_GLOBAL_POOLING

禁用全局跨会话池。 建议这样做,因为出于兼容性原因,全局跨会话池是默认支持的旧行为。 这受以后手动设置最大连接数的影响。

WINHTTP_OPTION_DISABLE_PROXY_AUTH_SCHEMES

通过提供 OR 所有适用选项的 ,在 WinHTTP 会话上禁用以下一个或多个代理身份验证做法。 这些方案都是方案,但 WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE除外,后者在将请求发送到环回或本地地址时强制使用本地计算机帐户。 这可以防止将系统凭据泄漏到本地 HTTP 代理。

术语 说明
WINHTTP_PROXY_DISABLE_SCHEME_BASIC 禁用基本身份验证方案。
WINHTTP_PROXY_DISABLE_SCHEME_DIGEST 禁用摘要式身份验证方案。
WINHTTP_PROXY_DISABLE_SCHEME_NTLM 禁用 NTLM 身份验证方案。
WINHTTP_PROXY_DISABLE_SCHEME_KERBEROS 禁用 Kerberos 身份验证方案。
WINHTTP_PROXY_DISABLE_SCHEME_NEGOTIATE 禁用协商身份验证方案。
WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE 在将请求发送到环回或本地地址时强制使用本地计算机帐户。

WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK

当初始协议协商失败时,阻止 WinHTTP 重试具有较低安全协议版本的连接。

WINHTTP_OPTION_DISABLE_STREAM_QUEUE

允许新请求在达到最大并发流限制时打开其他 HTTP/2 连接,而不是等待现有连接上的下一个可用流。

WINHTTP_OPTION_ENABLE_FEATURE

设置一个无符号长整数值,该值指定当前启用的功能。 可以是以下值之一。

术语 说明
WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION 如果启用,WinHTTP 将在 SSL 证书身份验证操作期间暂时还原客户端模拟。 此值只能在会话句柄上设置。
WINHTTP_ENABLE_SSL_REVOCATION 如果启用,WinHTTP 允许 SSL 吊销。 此值只能在请求句柄上设置。

WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL

设置可接受的高级 HTTP 版本的 DWORD 位掩码。 可能的值为:

术语 说明
WINHTTP_PROTOCOL_FLAG_HTTP2 (0x1) 为请求启用 HTTP/2。
WINHTTP_PROTOCOL_FLAG_HTTP3 (0x2) 为请求启用 HTTP/3。
无 (0x0) 将请求限制为 HTTP/1.1 及更早版本。

无法使用此选项禁用旧版 HTTP (1.1 和早期) 。 默认值为 0x0。

WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT

可以在 WinHttp 会话句柄上设置此选项,以允许 WinHttp 在使用 HTTP/2 时使用调用方提供的客户端证书上下文。

WINHTTP_OPTION_ENABLETRACING

设置一个 BOOL 值,该值指定当前是否启用跟踪。 此选项只能在 NULLHINTERNET 句柄上设置。 另请参阅 收集 WinHTTP 跟踪

WINHTTP_OPTION_ENCODE_EXTRA

为路径和查询字符串启用 URL 百分比编码。

或者,可以在调用 WinHttp 之前进行百分比编码。

WINHTTP_OPTION_EXPIRE_CONNECTION

此选项只能在发送或接收) (仍处于活动状态的请求句柄上设置。 设置此选项将告知 WinHttp 停止处理与传入的请求句柄关联的连接上的请求。 完成调用此选项的请求句柄后,连接将关闭。 此选项不采用任何参数。

WINHTTP_OPTION_EXTENDED_ERROR

检索一个无符号长整数值,该值包含映射到此线程上下文中上次返回的 ERROR_WINHTTP_* 错误消息的 Microsoft Windows 套接字错误代码。 可以将 NULL 作为句柄值传递。

WINHTTP_OPTION_FEATURE_SUPPORTED

检查此版本的 WinHTTP 是否支持提供的选项标志。

WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION

默认情况下,当 WinHttp 发送请求时,如果没有可用的连接来为请求提供服务,WinHttp 将尝试建立一个新连接,并且请求将绑定到此新连接。 设置此选项时,会在第一个可用的连接(不一定是正在建立的连接)上提供此类请求。

WINHTTP_OPTION_GLOBAL_PROXY_CREDS

获取指向 WINHTTP_CREDS_EX 结构的指针,其中 hInternet 函数参数设置为 NULL。 此选项需要注册表项 HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings!ShareCredsWithWinHttp。 如果未设置此注册表项,WinHTTP 将返回错误 ERROR_WINHTTP_INVALID_OPTION。 默认情况下,此注册表项不存在。 设置后,WinINet 会将凭据向下发送到 WinHTTP。 每当 WinHttp 收到身份验证质询时,如果当前句柄上没有设置凭据,它将使用 WinINet 提供的凭据。 除了代理凭据之外,为了共享服务器凭据,用户需要设置 WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS

WINHTTP_OPTION_GLOBAL_SERVER_CREDS

获取指向 WINHTTP_CREDS_EX 结构的指针,其中 hInternet 函数参数设置为 NULL。 此选项需要注册表项 HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings!ShareCredsWithWinHttp。 如果未设置此注册表项,WinHTTP 将返回错误 ERROR_WINHTTP_INVALID_OPTION。 默认情况下,此注册表项不存在。 设置后,WinINet 会将凭据向下发送到 WinHTTP。 每当 WinHttp 收到身份验证质询时,如果当前句柄上没有设置凭据,它将使用 WinINet 提供的凭据。 除了代理凭据之外,为了共享服务器凭据,用户需要设置 WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS

WINHTTP_OPTION_HANDLE_TYPE

检索一个无符号长整数值,该值包含传入的 HINTERNET 句柄的类型。 返回值可以是下列值之一:

术语 说明
WINHTTP_HANDLE_TYPE_CONNECT 句柄是连接句柄。
WINHTTP_HANDLE_TYPE_REQUEST 句柄是请求句柄。
WINHTTP_HANDLE_TYPE_SESSION 句柄是会话句柄。

WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED

防止WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL启用的协议版本以外的协议版本用于请求。

WINHTTP_OPTION_HTTP_PROTOCOL_USED

获取一个 DWORD,指示在给定请求中使用了哪个高级 HTTP 版本。 有关可能值的列表,请参阅 WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL

WINHTTP_OPTION_HTTP_VERSION

设置或检索包含支持的 HTTP 版本的 HTTP_VERSION_INFO 结构。 这是一个进程范围的选项;对句柄使用 NULL

WINHTTP_OPTION_HTTP2_KEEPALIVE

可以在会话句柄上设置此选项,让 WinHttp 使用 HTTP/2 PING 帧作为保留机制。 调用方指定一个超时(以毫秒为单位),在该超时期间没有连接活动后,WinHttp 将开始发送 HTTP/2 PING 帧。 调用方无法设置小于 5000 毫秒的超时值。

WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING

可以在 WinHttp 请求句柄上设置此选项,以控制当 HTTP/2 响应包含“传输编码”标头时 WinHttp 的行为方式。 在这种情况下,如果此选项设置为 FALSE,WinHttp 将返回错误。

WINHTTP_OPTION_HTTP2_RECEIVE_WINDOW

使用 WINHTTP_HTTP2_RECEIVE_WINDOW 结构设置初始 HTTP/2 流接收窗口大小和发送窗口更新的阈值。

WINHTTP_OPTION_HTTP3_HANDSHAKE_TIMEOUT

使用缓冲区将 HTTP/3 握手超时(以毫秒为单位)设置为 PDWORD。

WINHTTP_OPTION_HTTP3_INITIAL_RTT

配置 msquic 使用的初始 RTT(以毫秒为单位)。

WINHTTP_OPTION_HTTP3_KEEPALIVE

为连接启用保持连接语义。 使用缓冲区将保持连接超时(以毫秒为单位)设置为 PDWORD。

WINHTTP_OPTION_HTTP3_STREAM_ERROR_CODE

检索用于发送请求的 HTTP/3 流上的服务器提供的错误。

WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE

允许安全连接使用无法下载证书吊销列表的安全证书。

WINHTTP_OPTION_IPV6_FAST_FALLBACK

为连接启用 IPv6 快速回退 (更快乐的眼球) 。 此行为类似于 RFC 6555 中所述的 Happy Eyeballs 行为,用于改善 IPv6 不可靠的网络上的连接时间。

  • 如果为给定主机解析了 IPv6 和 IPv4 地址,WinHttp 将首先连接到第一个解析的 IPv6 地址,) 超时 (300 毫秒。
  • 如果连接失败,WinHttp 将尝试使用标准超时连接到第一个解析的 IPv4 地址。
  • 如果第二个连接失败,WinHttp 将以标准超时重试第一个解析的 IPv6 地址。
  • 如果第三个连接失败,WinHttp 将还原任何剩余地址的默认行为,尝试与每个地址建立标准超时的连接,直到建立连接或没有地址保留。

WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE

获取是否可以检索代理返回连接响应。

WINHTTP_OPTION_MATCH_CONNECTION_GUID

采用 WINHTTP_MATCH_CONNECTION_GUID 结构来告知 WinHTTP 在匹配连接上提供请求。 如果设置了 WINHTTP_MATCH_CONNECTION_GUID_FLAG_REQUIRED ,则只能使用具有匹配 GUID 的连接。 否则,可以使用具有匹配 GUID 的连接和未使用任何 GUID 标记的连接。

WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER

设置或检索一个无符号长整数值,该值包含每个 HTTP/1.0 服务器允许的最大连接数。 默认值为 INFINITE

适用于:Windows Vista SP1 及更高版本;Windows Server 2008 及更高版本。

WINHTTP_OPTION_MAX_CONNS_PER_SERVER

设置或检索包含每个服务器允许的最大连接数的无符号长整数值。 默认值为 INFINITE

当此选项设置为零时,WinHTTP 会将连接数的限制设置为 2。

WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS

设置 WinHTTP 遵循的最大重定向数;默认值为 10。 此限制可防止未经授权的站点在进行大量重定向后暂停 WinHTTP 客户端。

适用于:Windows XP SP1 及更高版本;Windows 2000 SP3 及更高版本。

WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE

在将最终状态代码返回给 WinHTTP 客户端之前,忽略的最大信息 100-199 状态代码响应数。 信息性 100-199 状态代码可以在最终状态代码之前由服务器发送, (有关详细信息,请参阅 RFC 2616) 。 默认值为 10。

适用于:Windows XP SP1 及更高版本;Windows 2000 SP3 及更高版本。

WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE

一个绑定在响应中排空的数据量,以便重复使用以字节指定的连接。 默认值为 1MB。

适用于:Windows XP SP1 及更高版本;Windows 2000 SP3 及更高版本。

WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE

在服务器响应的标头部分的最大大小上设置的绑定,以字节为单位。 此绑定可保护客户端免受试图通过发送包含无限标头数据的响应来停止客户端的未经授权的服务器。 默认值为 64KB。

适用于:Windows XP SP1 及更高版本;Windows 2000 SP3 及更高版本。

WINHTTP_OPTION_PARENT_HANDLE

检索此句柄的父句柄。

WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT

检索包含 Passport 登录服务器提供的 联合品牌 文本的字符串。 登录服务器响应 401 状态代码后,应立即检索此选项。 应用程序应传入足以容纳返回的字符串的缓冲区大小(以字节为单位)。

WINHTTP_OPTION_PASSPORT_COBRANDING_URL

检索包含 Passport 登录服务器提供的 联合品牌 图形的 URL 的字符串。 在登录服务器响应 401 状态代码后,应立即检索此选项。 应用程序应传入足以容纳返回的字符串的缓冲区大小(以字节为单位)。

WINHTTP_OPTION_PASSPORT_RETURN_URL

在检索 Passport 返回 URL 的请求句柄上设置只读选项。

WINHTTP_OPTION_PASSPORT_SIGN_OUT

设置会话句柄上的 选项以注销任何 Passport 登录名。 应用程序应传入使用 WINHTTP_OPTION_PASSPORT_RETURN_URL 检索到的 Passport 返回 URL。 清除与返回 URL 相关的所有 Cookie。

WINHTTP_OPTION_PASSWORD

设置或检索包含与请求句柄关联的密码的字符串值。

WINHTTP_OPTION_PROXY

设置或检索包含现有会话句柄或请求句柄上的代理数据的 WINHTTP_PROXY_INFO 结构。 检索代理数据时,应用程序必须使用 GlobalFree 函数释放此结构中包含的 lpszProxylpszProxyBypass 字符串, (它们是否为非 NULL) 。 应用程序可以通过传递 NULL 句柄 (默认代理) 查询全局代理数据。

WINHTTP_OPTION_PROXY_PASSWORD

设置或检索包含用于访问代理的密码的字符串值。

WINHTTP_OPTION_PROXY_SPN_USED

获取 WinHTTP 在身份验证期间提供给 SSPI 的代理服务器主体名称。 此字符串值用于在身份验证失败后传递给 SspiPromptForCredentials

WINHTTP_OPTION_PROXY_USERNAME

设置或检索包含用于访问代理的用户名的字符串值。

WINHTTP_OPTION_QUIC_STATS

检索包含连接信息(如发送和接收的 RTT 和字节) 的QUIC_STATISTICS 结构。

WINHTTP_OPTION_READ_BUFFER_SIZE

此选项已弃用;它不起作用。

WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE

设置是否可以检索代理响应实体。 默认已禁用此选项。

WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT

设置或检索一个无符号长整数值,该值包含超时值(以毫秒为单位),等待接收请求的所有响应标头。 如果 WinHTTP 在此超时期限内无法接收所有标头,则会取消请求。 默认超时值为 90 秒。

仅当从套接字接收数据时,才会检查此超时。 因此,当超时到期时,客户端应用程序不会收到通知,直到更多数据从服务器到达。 如果没有数据从服务器到达,则客户端应用程序的超时过期和通知之间的延迟可能与使用 WinHttpSetTimeouts 函数的 dwReceiveTimeout 参数设置的超时值相同。

WINHTTP_OPTION_RECEIVE_TIMEOUT

设置或检索一个无符号长整数值,该值包含超时值(以毫秒为单位),以接收对请求的部分响应或读取某些数据。 如果响应时间超过此超时值,则取消该请求。 默认超时值为 30 秒。

WINHTTP_OPTION_REDIRECT_POLICY

设置 WinHTTP 有关处理 30x HTTP 重定向状态代码的行为。 可以在会话或请求句柄上将此选项设置为以下值之一:

术语 说明
WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS 系统会自动遵循所有重定向。
WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP 遵循所有重定向,但源自安全 (https) URL 到不安全 (http) URL 的重定向除外。 这是默认设置。
WINHTTP_OPTION_REDIRECT_POLICY_NEVER 从不遵循重定向。 30x 状态将返回到应用程序。

WINHTTP_OPTION_REJECT_USERPWD_IN_URL

拒绝包含用户名和密码的 URL。 即使未指定用户名或密码,此选项也会拒绝包含 username:password 语义的 URL。 例如,“u:p@hostname”、“:@hostname”、“u:@hostname”和“:p@hostname”都将标记为无效。 如果将无效 URL 传递给函数,则返回 ERROR_WINHTTP_INVALID_URL。 默认情况下此选项被关闭。

WINHTTP_OPTION_REQUEST_ANNOTATION

启用为提供的批注名称获取和设置请求批注。 这允许调用方将字符串附加到请求,以便以后检索,以根据调用方认为有用的任何自定义逻辑来标识请求。

WINHTTP_OPTION_REQUEST_PRIORITY

此选项已弃用;它不起作用。

WINHTTP_OPTION_REQUEST_STATS

检索请求的统计信息。 有关可用统计信息的列表,请参阅 WINHTTP_REQUEST_STATS

WINHTTP_OPTION_REQUEST_TIMES

检索请求的计时信息。 有关可用计时的列表,请参阅 WINHTTP_REQUEST_TIMES

WINHTTP_OPTION_REQUIRE_STREAM_END

此选项告知 WinHttp 忽略“Content-Length”响应标头,并继续在流上接收,直到收到END_STREAM标志。

WINHTTP_OPTION_RESOLUTION_HOSTNAME

此选项可以在发送之前在 WinHttp 请求句柄上设置。 如果设置,WinHttp 将使用调用方提供的字符串作为 DNS 解析的主机名。

WINHTTP_OPTION_RESOLVE_TIMEOUT

设置或检索一个无符号长整数值,该值包含超时值(以毫秒为单位)以解析主机名。 默认超时值为 INFINITE。 如果指定了非默认值,则每个名称解析会产生一个线程创建开销。

WINHTTP_OPTION_REVERT_IMPERSONATION_SERVER_CERT

在生成服务器证书链时还原任何线程模拟,强制改用进程令牌。

WINHTTP_OPTION_SECURE_PROTOCOLS

设置一个无符号长整数值,该值指定哪些安全协议是可接受的。

  • Windows 11、Windows 10 和 Windows 8.1。 默认情况下,仅启用 SSL3、TLS1.0、TLS1.1 和 TLS1.2。
  • Windows 8 和 Windows 7。 默认情况下,仅启用 SSL3 和 TLS1。

该值可以是以下一个或多个值的组合。

术语 说明
WINHTTP_FLAG_SECURE_PROTOCOL_ALL 可以使用安全套接字层 (SSL) 2.0、SSL 3.0 和传输层安全性 (TLS) 1.0 协议。
WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 可以使用 SSL 2.0 协议。
WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 可以使用 SSL 3.0 协议。
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 可以使用 TLS 1.0 协议。
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 可以使用 TLS 1.1 协议。
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 可以使用 TLS 1.2 协议。
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3 可以使用 TLS 1.3 协议。

如果需要添加对 TLS 1.1 或 TLS 1.2 协议的支持,但无法重新编译应用程序以使用 WINHTTP_OPTION_SECURE_PROTOCOLS的适当值,则可以改为添加 DefaultSecureProtocols 注册表项。 该注册表项允许指定在使用 WINHTTP_OPTION_SECURE_PROTOCOLS 标志时应使用哪些 SSL 协议。

重要

以下说明涉及修改注册表。 但是,如果注册表修改不正确,可能会发生严重问题。 因此,请确保仔细遵循这些说明。 为提高保护程度,请在修改之前备份注册表。 那么,如果发生问题,你也可以恢复注册表。 有关如何备份和还原注册表的详细信息,请参阅 如何在 Windows 中备份和还原注册表

当应用程序指定WINHTTP_OPTION_SECURE_PROTOCOLS时,系统会检查DefaultSecureProtocols注册表项,如果存在,则会用注册表项中指定的DefaultSecureProtocols协议替代 WINHTTP_OPTION_SECURE_PROTOCOLS 指定的默认协议。 如果注册表项不存在,WinHTTP 将使用现有操作系统默认值 WINHTTP_OPTION_SECURE_PROTOCOLS。 这些 WinHTTP 默认值遵循现有的优先规则,并由安全通道 (Schannel) WinHttpSetOption 为每个应用程序设置的禁用的协议和协议进行推翻。

可以在以下路径中添加 DefaultSecureProtocols 注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp

在基于 x64 的计算机上,还必须将 添加到DefaultSecureProtocols路径:Wow6432Node

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp

注册表值为 DWORD 位图。 要使用的值是通过添加与所需协议对应的值来确定的。

DefaultSecureProtocols 值 协议已启用
0x00000008 默认启用 SSL 2.0
0x00000020 默认启用 SSL 3.0
0x00000080 默认启用 TLS 1.0
0x00000200 默认启用 TLS 1.1
0x00000800 默认启用 TLS 1.2

例如,如果要替代 WINHTTP_OPTION_SECURE_PROTOCOLS 的默认值以指定 TLS 1.1 和 TLS 1.2。 在这种情况下,请采用 TLS 1.1 (0x00000200) 的值和 TLS 1.2 (0x00000800) 的值,在计算器 (以程序员模式) 将它们相加,生成的注册表值将0x00000A00。

WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT

将 SSL/TLS 服务器的证书检索到 WINHTTP_CERTIFICATE_INFO 结构中。 应用程序必须使用 LocalFree 释放 lpszSubjectInfolpszIssuerInfo 成员。

WINHTTP_OPTION_SECURITY_FLAGS

设置或检索包含句柄的安全标志的无符号长整数值。 它可以是以下值的组合:

术语 说明
SECURITY_FLAG_IGNORE_CERT_CN_INVALID 允许证书中的公用名无效;也就是说,应用程序指定的服务器名称与证书中的公用名称不匹配。 如果设置了此标志,则应用程序不会收到 WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID 回调。
SECURITY_FLAG_IGNORE_CERT_DATE_INVALID 允许证书日期无效,即证书已过期或尚未生效。 如果设置了此标志,则应用程序不会收到 WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID 回调。
SECURITY_FLAG_IGNORE_UNKNOWN_CA 允许无效的证书颁发机构。 如果设置了此标志,则应用程序不会收到 WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA 回调。
SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE 允许使用非服务器证书 ((例如客户端证书) )建立服务器的标识。
SECURITY_FLAG_IGNORE_WEAK_SIGNATURE 允许忽略弱签名。
此标志在从 Windows 7 和 Windows Server 2008 R2 开始的每个 OS 的汇总更新中可用。
SECURITY_FLAG_SECURE 使用安全传输。 这仅在对 WinHttpQueryOption 的调用中返回。
SECURITY_FLAG_STRENGTH_MEDIUM 使用中等 (56 位) 加密。 这仅在对 WinHttpQueryOption 的调用中返回。
SECURITY_FLAG_STRENGTH_STRONG 使用强 (128 位) 加密。 这仅在对 WinHttpQueryOption 的调用中返回。
SECURITY_FLAG_STRENGTH_WEAK 使用弱 (40 位) 加密。 这仅在对 WinHttpQueryOption 的调用中返回。

WINHTTP_OPTION_SECURITY_INFO

检索请求的 SChannel 连接和密码信息。

WINHTTP_OPTION_SECURITY_KEY_BITNESS

检索包含加密密钥的密码强度的无符号长整数值。 数字越大,表示加密强度越强。

WINHTTP_OPTION_SEND_TIMEOUT

设置或检索一个无符号长整数值,该值包含超时值(以毫秒为单位)以发送请求或写入某些数据。 如果发送请求所花费的时间超过超时时间,则取消发送操作。 默认超时值为 30 秒。

WINHTTP_OPTION_SERVER_CBT

获取指向 SecPkgContext_Bindings 结构的指针,该结构指定 CBT) (通道绑定令牌。

通道绑定令牌是安全传输通道的属性,用于将身份验证通道绑定到安全传输通道。 只有在建立 SSL 连接后,此选项才能获取此令牌。

注意

将此选项和 lpBuffernull 值传递给 WinHttpQueryOption 将返回ERROR_INSUFFICIENT_BUFFER以及 lpdwBufferLength 参数中缓冲区所需的字节大小。 此返回的缓冲区大小值可以在后续调用中传递,以查询通道绑定令牌。 如果要基于通道绑定令牌修改请求标头,处理WINHTTP_CALLBACK_STATUS_REQUEST这些步骤是必需的。 请注意,在此回调期间,Windows XP 和 Vista 不支持修改请求标头。

WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT

检索服务器认证链上下文。 可以传递WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT以获取指向在协商 SSL 连接期间收到的服务器证书链CERT_CHAIN_CONTEXT的重复指针。 客户端必须在返回的PCCERT_CONTEXT指针上调用 CertFreeCertificateContext ,该指针已填充到缓冲区中。

WINHTTP_OPTION_SERVER_CERT_CONTEXT

检索服务器认证上下文。 可以传递WINHTTP_OPTION_SERVER_CERT_CONTEXT以获取指向在协商 SSL 连接期间收到的服务器证书的 CERT CONTEXT 的重复指针。 客户端必须在返回的PCCERT_CONTEXT指针上调用 CertFreeCertificateContext ,该指针已填充到缓冲区中。

WINHTTP_OPTION_SERVER_SPN_USED

获取 WinHTTP 在身份验证期间提供给 SSPI 的服务器服务器主体名称。 身份验证失败后,此字符串值可以传递给 SspiPromptForCredentials

WINHTTP_OPTION_SPN

为 Kerberos 或协商 Kerberos 身份验证生成 SPN (服务主体名称) 时,包括或删除服务器端口号。 此标志是以下值之一:

术语 说明
WINHTTP_DISABLE_SPN_SERVER_PORT 删除服务器端口号。
WINHTTP_ENABLE_SPN_SERVER_PORT 包括服务器端口号。

WINHTTP_OPTION_STREAM_ERROR_CODE

可以在 WinHttp 请求句柄上查询此选项,并将返回 HTTP 流上收到的RST_STREAM帧指示的错误代码。

WINHTTP_OPTION_TCP_FAST_OPEN

为连接启用 TCP 快速打开。

WINHTTP_OPTION_TCP_KEEPALIVE

可以在 WinHttp 会话句柄上设置此选项,以在基础套接字上启用 TCP 保持连接行为。 采用 tcp_keepalive 结构。

WINHTTP_OPTION_TLS_FALSE_START

为连接启用 TLS False Start。

WINHTTP_OPTION_TCP_PRIORITY_STATUS

使用 WINHTTP_OPTION_TCP_PRIORITY_HINT 查询 TCP 套接字集的提示优先级。 有关更多详细信息,请参阅 SIO_SET_PRIORITY_HINT 文档。

WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK

可以在 WinHttp 会话句柄上设置此选项,以控制在较新的协议版本出现 TLS 握手失败时是否允许回退到 TLS 1.0。

WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT

采用一个事件,该事件将在为特定会话完成最后一个回调时设置。 必须在会话句柄上使用此标志。 在 WinHTTP 设置事件之前,无法关闭该事件。

WINHTTP_OPTION_UNSAFE_HEADER_PARSING

此选项保留供内部使用,不应调用。

WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET

指示堆栈使用 WinHttpSendRequest 启动 WebSocket 握手过程。 此选项不采用任何参数。

WINHTTP_OPTION_URL

检索包含已下载资源的完整 URL 的字符串值。 如果原始 URL 包含任何额外的数据(如搜索字符串或定位点),或者如果调用已重定向,则返回的 URL 与原始 URL 不同。 应用程序应传入一个缓冲区(以字节为单位),该缓冲区的大小足以将返回的 URL 保存在宽字符中。

WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS

采用 BOOL ,并且只能设置会话句柄。 设置 选项后,它只会向下传播到从会话句柄创建的句柄。 如果 为 TRUE,则此选项会导致使用从 WinInet 向下推送的全局服务器凭据作为最后手段。 此选项的默认值为 FALSE。 此选项需要注册表项 HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings!ShareCredsWithWinHttp。 默认情况下,此注册表项不存在。 设置后,WinINet 会将凭据向下发送到 WinHTTP。 每当 WinHttp 收到身份验证质询时,如果当前句柄上未设置凭据,它将使用 WinINet 提供的凭据。

WINHTTP_OPTION_USE_SESSION_SCH_CRED

允许将单个凭据设置为默认用于会话中的所有终结点,而不是按终结点使用默认凭据。 这可以通过减少凭据管理开销来提高性能。 请注意,当显式提供客户端证书时,此默认凭据将不起作用。

WINHTTP_OPTION_USER_AGENT

设置或检索由 WinHttpOpen 提供并在后续 WinHttpSendRequest 函数中使用的句柄上的用户代理字符串,只要它不会被 WinHttpAddRequestHeadersWinHttpSendRequest 添加的标头重写。 检索用户代理时,应用程序应传入一个大小为字节的缓冲区,该缓冲区的大小足以将返回的 URL 保存在宽字符中。 设置用户代理时,缓冲区大小是字符串的长度(以字符为单位)加上 NULL 终止符。

WINHTTP_OPTION_USERNAME

设置或检索包含用户名的字符串。

WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT

设置 WinHttpWebSocketClose 应等待完成关闭握手的时间(以毫秒为单位)。 默认为 10 秒。

WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL

设置通过连接发送保持活动数据包的间隔(以毫秒为单位)。 默认间隔为 30000 (30 秒) 。 最小间隔为 15000 (15 秒) 。 使用 WinHttpSetOption 设置小于 15000 的值将返回 ERROR_INVALID_PARAMETER

注意

WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL的默认值是从 HKLM:\SOFTWARE\Microsoft\WebSocket\KeepaliveInterval 读取的。 如果未设置值,将使用默认值 30000。 不能有低于 15000 毫秒的 keepalive 间隔。

WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE

设置或检索 DWORD,该 DWORD 指定要在 WebSocket 连接上使用的接收缓冲区大小。

WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE

设置或检索 DWORD,该 DWORD 指定要在 WebSocket 连接上使用的发送缓冲区大小。

WINHTTP_OPTION_WORKER_THREAD_COUNT

设置一个无符号长整数值,该值指定线程池应用于异步完成的工作线程数。 此选项的默认值为零,它指定工作线程数等于系统上的 CPU 数。 在异步操作发生之前,只能在 NULLHINTERNET 句柄上设置此选项。 此选项只能设置一次。

适用于:Windows 7 及更高版本;Windows Server 2008 R2 及更高版本。

WINHTTP_OPTION_WRITE_BUFFER_SIZE

此选项已弃用;它不起作用。

备注

下表列出了选项标志,具体方法是指定可以对其执行操作的句柄、是否可以查询和设置它们以及使用的数据类型。 “X”表示选项标志对函数或句柄有效,而“-”则指定选项标志无效。

尝试在不支持的 Windows 版本上设置或查询选项标志将导致 ERROR_WINHTTP_INVALID_OPTION

选项标志和数据类型 会话句柄 请求句柄 查询选项 Set 选项 最低 Windows 版本
WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS
BOOL
X - - X -
WINHTTP_OPTION_AUTOLOGON_POLICY
DWORD
- X - X -
WINHTTP_OPTION_BACKGROUND_CONNECTIONS
DWORD
X - - X Windows 10 版本 21H1
WINHTTP_OPTION_CALLBACK
LPVOID
X X X X -
WINHTTP_OPTION_CLIENT_CERT_CONTEXT
CERT_CONTEXT
- X - X Windows Vista
WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST
SecPkgContext_IssuerListInfoEx
- X X - Windows Vista
WINHTTP_OPTION_CODEPAGE
DWORD
X - - X -
WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH
DWORD
X - - X -
WINHTTP_OPTION_CONNECT_RETRIES
DWORD
X X X X -
WINHTTP_OPTION_CONNECT_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_CONNECTION_INFO
WINHTTP_CONNECTION_INFO
- X X - -
WINHTTP_OPTION_CONNECTION_STATS_V0
TCP_INFO_v0
- X X - Windows 10 版本 1903
WINHTTP_OPTION_CONNECTION_STATS_V1
TCP_INFO_v1
- X X - Windows 10 版本 2004
WINHTTP_OPTION_CONTEXT_VALUE
DWORD_PTR
X X X X -
WINHTTP_OPTION_DECOMPRESSION
DWORD
X X - X Windows 8.1
WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING
BOOL
X - - X Windows 10 版本 21H1
WINHTTP_OPTION_DISABLE_FEATURE
DWORD
- X - X -
WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK
BOOL
X - - X Windows 10 版本 1903
WINHTTP_OPTION_DISABLE_STREAM_QUEUE
BOOL
X X - X Windows 10 版本 1809
WINHTTP_OPTION_ENABLE_FEATURE
DWORD
* * - X -
WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL
DWORD
X X - X Windows 10 版本 1607
WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT_CONTEXT
BOOL
X - - X Windows 10 版本 21H1
WINHTTP_OPTION_ENABLETRACING
DWORD
- - X X -
WINHTTP_OPTION_ENCODE_EXTRA
BOOL
X X - X Windows 10版本 1803
WINHTTP_OPTION_EXPIRE_CONNECTION
N/A
- X - X Windows 10 版本 1903
WINHTTP_OPTION_EXTENDED_ERROR
DWORD
X X X - -
WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION
BOOL
X - - X Windows 10 版本 21H1
WINHTTP_OPTION_GLOBAL_PROXY_CREDS
WINHTTP_CREDS
X X - X -
WINHTTP_OPTION_GLOBAL_SERVER_CREDS
WINHTTP_CREDS_EX
X X - X -
WINHTTP_OPTION_HANDLE_TYPE
DWORD
X X X - -
WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED
BOOL
X X - X Windows 10 版本 1903
WINHTTP_OPTION_HTTP_PROTOCOL_USED
DWORD
- X X - Windows 10 版本 1607
WINHTTP_OPTION_HTTP_VERSION
HTTP_VERSION_INFO
X X X X -
WINHTTP_OPTION_HTTP2_KEEPALIVE
DWORD
X - - X Windows 10 版本 21H1
WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING
BOOL
X X - X Windows 10 版本 21H1
WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE
BOOL
- X - X Windows 10 版本 2004
WINHTTP_OPTION_IPV6_FAST_FALLBACK
BOOL
X - - X Windows 10 版本 1903
WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE
BOOL
X X X - -
WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER
DWORD
X - X X -
WINHTTP_OPTION_MAX_CONNS_PER_SERVER
DWORD
X - X X -
WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS
DWORD
X X X X -
WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE
DWORD
X X X X -
WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE
DWORD
X X X X -
WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE
DWORD
X X X X -
WINHTTP_OPTION_PARENT_HANDLE
HINTERNET
X X X - -
WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT
LPWSTR
- X X - -
WINHTTP_OPTION_PASSPORT_COBRANDING_URL
LPWSTR
- X X - -
WINHTTP_OPTION_PASSPORT_RETURN_URL
LPVOID
- X X - -
WINHTTP_OPTION_PASSPORT_SIGN_OUT
LPVOID
X - - X -
WINHTTP_OPTION_PASSWORD
LPWSTR
- X X X -
WINHTTP_OPTION_PROXY
WINHTTP_PROXY_INFO
X X X X -
WINHTTP_OPTION_PROXY_PASSWORD
LPWSTR
- X X X -
WINHTTP_OPTION_PROXY_SPN_USED
LPWSTR
- X X - -
WINHTTP_OPTION_PROXY_USERNAME
LPWSTR
- X X X -
WINHTTP_OPTION_READ_BUFFER_SIZE
DWORD
- X X X -
WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE
BOOL
X X - X -
WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_RECEIVE_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_REDIRECT_POLICY
DWORD
X X X X -
WINHTTP_OPTION_REJECT_USERPWD_IN_URL
BOOL
- X - X -
WINHTTP_OPTION_REQUEST_PRIORITY
DWORD
- X X X -
WINHTTP_OPTION_REQUEST_STATS
WINHTTP_REQUEST_STATS
- X X - Windows 10 版本 1903
WINHTTP_OPTION_REQUEST_TIMES
WINHTTP_REQUEST_TIMES
- X X - Windows 10 版本 1903
WINHTTP_OPTION_REQUIRE_STREAM_END
BOOL
X X - X Windows 10 版本 21H1
WINHTTP_OPTION_RESOLUTION_HOSTNAME
LPWSTR
- X - X Windows 10 版本 21H1
WINHTTP_OPTION_RESOLVE_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_SECURE_PROTOCOLS
DWORD
X - - X -
WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT
WINHTTP_CERTIFICATE_INFO
- X X - -
WINHTTP_OPTION_SECURITY_FLAGS
DWORD
- X X X -
WINHTTP_OPTION_SECURITY_INFO
WINHTTP_SECURITY_INFO
- X X - Windows 10 版本 2004
WINHTTP_OPTION_SECURITY_KEY_BITNESS
DWORD
- X X - -
WINHTTP_OPTION_SEND_TIMEOUT
DWORD
X X X X -
WINHTTP_OPTION_SERVER_CBT
SecPkgContext_Bindings*
- X X - -
WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT
CERT_CHAIN_CONTEXT
- X X - Windows 10 版本 2004
WINHTTP_OPTION_SERVER_CERT_CONTEXT
证书上下文
- X X - -
WINHTTP_OPTION_SERVER_SPN_USED
LPWSTR
- X X - -
WINHTTP_OPTION_SPN
DWORD
- X - X -
WINHTTP_OPTION_STREAM_ERROR_CODE
DWORD
- X X - Windows 10 版本 21H1
WINHTTP_OPTION_TCP_FAST_OPEN
BOOL
X - - X Windows 10 版本 2004
WINHTTP_OPTION_TCP_KEEPALIVE
tcp_keepalive
X - - X Windows 10 版本 2004
WINHTTP_OPTION_TLS_FALSE_START
BOOL
X - - X Windows 10 版本 2004
WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK
BOOL
X - - X Windows 10 版本 21H1
WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT
HINTERNET
X - - X -
WINHTTP_OPTION_UNSAFE_HEADER_PARSING
DWORD
- X - X -
WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET
N/A
- X - X -
WINHTTP_OPTION_URL
LPWSTR
- X X - -
WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS
BOOL
X X - X -
WINHTTP_OPTION_USER_AGENT
LPWSTR
X - X X -
WINHTTP_OPTION_USERNAME
LPWSTR
- X X X -
WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT
DWORD
- - X X -
WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL
DWORD
- - X X -
WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE
DWORD
X X X X Windows 8.1
WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE
DWORD
X X X X Windows 8.1
WINHTTP_OPTION_WORKER_THREAD_COUNT
DWORD
- - - X -
WINHTTP_OPTION_WRITE_BUFFER_SIZE
DWORD
- X X X -

注意

对于 Windows XP 和 Windows 2000,请参阅 运行时要求

要求

要求
最低受支持的客户端 Windows XP、Windows 2000 Professional 和 SP3 [仅限桌面应用]
最低受支持的服务器 Windows Server 2003、Windows 2000 Server SP3 [仅限桌面应用]
可再发行组件 Windows XP 和 Windows 2000 上的 WinHTTP 5.0 和 Internet Explorer 5.01 或更高版本。
标头 Winhttp.h

另请参阅