当其中一个 Microsoft Windows HTTP Services (WinHTTP) 函数失败时,
GetLastError
会返回下面列出的错误值,并且也会在
WinHttpRequest
对象返回的较低 16 位
HRESULT
错误中返回。
名称以“ERROR_WINHTTP_”开头的错误值特定于 WinHTTP 函数。 WinHTTP 函数还会在适当情况下返回 Windows 错误消息。
ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR
12178
当无法找到指定 URL 的代理时,
由 WinHttpGetProxyForUrl
返回。
ERROR_WINHTTP_AUTODETECTION_FAILED
12180
如果 WinHTTP 无法发现代理自动配置 (PAC) 文件的 URL,则由
WinHttpDetectAutoProxyConfigUrl
返回。
ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT
12166
执行代理自动配置 (PAC) 文件中的脚本代码时出错。
ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN
12103
如果在调用
Open
方法后无法请求指定选项,则由
HttpRequest
对象返回。
ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND
12102
如果调用
Send
方法后无法执行请求的操作,则由
HttpRequest
对象返回。
ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN
12100
如果在调用
Open
方法之前无法执行请求的操作,则由
HttpRequest
对象返回。
ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND
12101
如果在调用
Send
方法之前无法执行请求的操作,则由
HttpRequest
对象返回。
ERROR_WINHTTP_CANNOT_CONNECT
12029
如果与服务器的连接失败,则返回 。
ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED
服务器需要 SSL 客户端身份验证。 应用程序通过使用
WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST
选项调用
WinHttpQueryOption
来检索证书颁发者列表。 有关详细信息,请参阅
WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST
选项。
如果服务器请求客户端证书,但不需要它,应用程序可以使用
WINHTTP_OPTION_CLIENT_CERT_CONTEXT
选项交替调用
WinHttpSetOption
。 在这种情况下,应用程序在
WinHttpSetOption
的
lpBuffer
参数中指定WINHTTP_NO_CLIENT_CERT_CONTEXT宏。 有关详细信息,请参阅
WINHTTP_OPTION_CLIENT_CERT_CONTEXT
选项。
带 SP1 的 Windows Server 2003 和 SP2 的 Windows XP:
不支持此错误。
ERROR_WINHTTP_CLIENT_CERT_NO_ACCESS_PRIVATE_KEY
应用程序没有访问与客户端证书关联的私钥所需的权限。
带 SP1 的 Windows Server 2003 和 SP2 的 Windows XP:
不支持此错误。
ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEY
SSL 客户端证书的上下文没有与之关联的私钥。 客户端证书可能已导入到没有私钥的计算机。
带 SP1 的 Windows Server 2003 和 SP2 的 Windows XP:
不支持此错误。
12183
在分析分块编码过程中遇到溢出条件时
,由 WinHttpReceiveResponse
返回。
ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED
12044
服务器请求客户端身份验证时由
WinHttpReceiveResponse
返回。
带 SP1 的 Windows Server 2003 和 SP2 的 Windows XP:
不支持此错误。
ERROR_WINHTTP_CONNECTION_ERROR
12030
与服务器的连接已重置或终止,或者遇到不兼容的 SSL 协议。 例如,WinHTTP 版本 5.1 不支持 SSL2,除非客户端专门启用 SSL2。
12155
过时;不再使用。
12181
当响应中存在的标头数量超过 WinHTTP 可以接收的数量时,由
WinHttpReceiveResponse
返回。
12150
无法找到请求的标头。
12182
当收到的标头的大小超过请求句柄的限制时,
由 WinHttpReceiveResponse
返回。
ERROR_WINHTTP_INCORRECT_HANDLE_STATE
12019
无法执行请求的操作,因为提供的句柄未处于正确的状态。
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
12018
为此操作提供的句柄类型不正确。
ERROR_WINHTTP_INTERNAL_ERROR
12004
发生了内部错误。
ERROR_WINHTTP_INVALID_OPTION
12009
对
WinHttpQueryOption
或
WinHttpSetOption
的请求指定了无效的选项值。
ERROR_WINHTTP_INVALID_QUERY_REQUEST
12154
过时;不再使用。
ERROR_WINHTTP_INVALID_SERVER_RESPONSE
12152
无法分析服务器响应。
ERROR_WINHTTP_INVALID_URL
12005
此 URL 无效。
ERROR_WINHTTP_LOGIN_FAILURE
12015
登录尝试失败。 遇到此错误时,应使用
WinHttpCloseHandle
关闭请求句柄。 在重试最初生成此错误的函数之前,必须创建新的请求句柄。
ERROR_WINHTTP_NAME_NOT_RESOLVED
12007
无法解析服务器名称。
ERROR_WINHTTP_NOT_INITIALIZED
12172
过时;不再使用。
ERROR_WINHTTP_OPERATION_CANCELLED
12017
该操作被取消,通常是因为操作完成之前,操作所针对的句柄已关闭。
ERROR_WINHTTP_OPTION_NOT_SETTABLE
12011
无法设置请求的选项,只能查询。
ERROR_WINHTTP_OUT_OF_HANDLES
12001
过时;不再使用。
ERROR_WINHTTP_REDIRECT_FAILED
12156
重定向失败,因为方案已更改,或者重定向的所有尝试都失败 (默认为五次尝试) 。
ERROR_WINHTTP_RESEND_REQUEST
12032
WinHTTP 函数失败。 可以在同一请求句柄上重试所需的函数。
ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW
12184
当传入的响应超过内部 WinHTTP 大小限制时返回。
ERROR_WINHTTP_SCRIPT_EXECUTION_ERROR
12177
执行脚本时遇到错误。
ERROR_WINHTTP_SECURE_CERT_CN_INVALID
12038
当证书 CN 名称与传递的值不匹配 (等效于
) CERT_E_CN_NO_MATCH
错误时返回。
ERROR_WINHTTP_SECURE_CERT_DATE_INVALID
12037
指示针对当前系统时钟或已签名文件中的时间戳进行验证时,所需证书未在其有效期内,或者认证链的有效期未正确嵌套 (等效于
CERT_E_EXPIRED
或
CERT_E_VALIDITYPERIODNESTING
错误) 。
ERROR_WINHTTP_SECURE_CERT_REV_FAILED
12057
指示无法检查吊销,因为吊销服务器处于脱机状态 (等效
于CRYPT_E_REVOCATION_OFFLINE
) 。
ERROR_WINHTTP_SECURE_CERT_REVOKED
12170
指示证书已吊销 (等效于
CRYPT_E_REVOKED
) 。
ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE
12179
指示证书对于请求的用法无效, (等效于
CERT_E_WRONG_USAGE
) 。
ERROR_WINHTTP_SECURE_CHANNEL_ERROR
12157
指示发生错误与安全通道 (等效于以“winerror.h”头文件) 中列出的“SEC_E_”和“SEC_I_”开头的错误代码。
ERROR_WINHTTP_SECURE_FAILURE
12175
在服务器发送的安全套接字层 (SSL) 证书中发现一个或多个错误。 若要确定遇到的错误类型,检查状态回调函数中的
WINHTTP_CALLBACK_STATUS_SECURE_FAILURE
通知。 有关详细信息,请参阅
WINHTTP_STATUS_CALLBACK
。
ERROR_WINHTTP_SECURE_INVALID_CA
12045
指示证书链已处理,但在信任提供程序不信任的根证书中终止, (等效于
CERT_E_UNTRUSTEDROOT
) 。
ERROR_WINHTTP_SECURE_INVALID_CERT
12169
指示证书无效 (等效于
CERT_E_ROLE
、
CERT_E_PATHLENCONST、CERT_E_CRITICAL
、
CERT_E_PURPOSE
、
CERT_E_ISSUERCHAINING
、
CERT_E_MALFORMED
和
CERT_E_CHAINING)
等错误。
ERROR_WINHTTP_SHUTDOWN
12012
WinHTTP 函数支持正在关闭或卸载。
ERROR_WINHTTP_TIMEOUT
12002
请求已超时。
无论 Windows HTTP 服务中设置的超时值如何,都可能由于 TCP/IP 超时行为而返回此错误。
ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT
12167
无法下载 PAC 文件。 例如,PAC URL 引用的服务器可能无法访问,或者服务器返回了 404 NOT FOUND 响应。
ERROR_WINHTTP_UNHANDLED_SCRIPT_TYPE
12176
不支持脚本类型。
ERROR_WINHTTP_UNRECOGNIZED_SCHEME
12006
URL 指定了“http:”或“https:”以外的方案。
ERROR_NOT_ENOUGH_MEMORY
内存不足,无法完成请求的操作。
头:
在 Winerror.h 中声明
ERROR_INSUFFICIENT_BUFFER
提供给函数的缓冲区的大小(以字节为单位)不足以包含返回的数据。 有关详细信息,请参阅特定函数。
头:
在 Winerror.h 中声明
ERROR_INVALID_HANDLE
传递到应用程序编程接口 (API) 的句柄已失效或关闭。
头:
在 Winerror.h 中声明
ERROR_NO_MORE_FILES
找不到更多文件。
头:
在 Winerror.h 中声明
ERROR_NO_MORE_ITEMS
未找到更多项目。
头:
在 Winerror.h 中声明
ERROR_NOT_SUPPORTED
未加载所需的协议堆栈,并且应用程序无法启动 WinSock。
头:
在 Winerror.h 中声明
对于 Windows XP 和 Windows 2000,请参阅 WinHttp 起始页的
运行时要求
部分。