WinHttpSetOption 函数 (winhttp.h)

WinHttpSetOption 函数设置 Internet 选项。

语法

WINHTTPAPI BOOL WinHttpSetOption(
  [in] HINTERNET hInternet,
  [in] DWORD     dwOption,
  [in] LPVOID    lpBuffer,
  [in] DWORD     dwBufferLength
);

参数

[in] hInternet

要设置数据的 HINTERNET 句柄。 请注意,这可以是会话句柄或请求句柄,具体取决于要设置的选项。 有关如何确定适合在设置特定选项时使用哪个句柄的详细信息,请参阅 选项标志

[in] dwOption

包含要设置的 Internet 选项的无符号长整数值。 这可以是 选项标志 值之一。

[in] lpBuffer

指向包含选项设置的缓冲区的指针。

[in] dwBufferLength

包含 lpBuffer 缓冲区长度的无符号长整数值。 为以下选项指定缓冲区的长度(以字符为单位);对于所有其他选项,长度以字节为单位指定。

返回值

如果成功,则返回 TRUE ,否则返回 FALSE 。 有关扩展的错误信息,请调用 GetLastError。 返回的错误代码如下:

错误代码 说明
ERROR_WINHTTP_INCORRECT_HANDLE_STATE
无法执行请求的操作,因为提供的句柄未处于正确的状态。
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
此操作提供的句柄类型不正确。
ERROR_WINHTTP_INTERNAL_ERROR
发生了内部错误。
ERROR_WINHTTP_INVALID_OPTION
WinHttpQueryOptionWinHttpSetOption 的请求指定了无效的选项值。
ERROR_INVALID_PARAMETER
参数无效。

如果将 WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL 设置为小于 15000 的值,将返回此值。

ERROR_WINHTTP_OPTION_NOT_SETTABLE
无法设置请求的选项,只能进行查询。
ERROR_INVALID_PARAMETER
参数无效。

如果将 WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL 设置为小于 15000 的值,将返回此值。

ERROR_NOT_ENOUGH_MEMORY
内存不足,无法完成请求的操作。 (Windows 错误代码)

注解

传递给 WinHttpSetOption 的 凭据可能会意外地以纯文本形式发送。 强烈建议使用 WinHttpQueryAuthSchemesWinHttpSetCredentials 而不是 WinHttpSetOption 来设置凭据。

注意 但是,在使用 Passport 身份验证时,响应 407 状态代码的 WinHTTP 应用程序必须使用 WinHttpSetOption 来提供代理凭据,而不是 WinHttpSetCredentials。 仅当使用 Passport 身份验证时,才如此;在所有其他情况下,请使用 WinHttpSetCredentials
 
即使在异步模式下使用 WinHTTP, (即在 WinHttpOpen) 中设置了WINHTTP_FLAG_ASYNC时,此函数也会同步运行。 返回值指示成功或失败。 要获得更多的错误信息,请调用 GetLastError。

如果指定了无法设置的选项标志,GetLastError 将返回错误ERROR_INVALID_PARAMETER。

有关显示 WinHttpSetOption 用法的详细信息和代码示例,请参阅 WinHTTP 中的身份验证

注意 对于 Windows XP 和 Windows 2000,请参阅 WinHttp 起始页的 运行时要求 部分。
 

要求

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

另请参阅

WinHTTP 中的身份验证

选项标志

WinHTTP 版本

WinHttpCloseHandle

WinHttpOpen

WinHttpQueryOption