描述
WinHttpSetTimeouts函数设置与HTTP事务相关的超时。
C / C ++语法
BOOL WinHttpSetTimeouts( HINTERNET hInternet, int dwResolveTimeout, int dwConnectTimeout, int dwSendTimeout, int dwReceiveTimeout ); |
PowerBASIC 语法
FUNCTION WinHttpSetTimeouts ( _ BYVAL hInternet AS DWORD, _ BYVAL nResolveTimeout AS LONG, _ BYVAL nConnectTimeout AS LONG, _ BYVAL nSendTimeout AS LONG, _ BYVAL nReceiveTimeout AS LONG _ ) AS LONG |
参数
hInternet
[in]WinHttpOpen或WinHttpOpenRequest返回的HINTERNET句柄。
dwResolveTimeout
[in]integer类型的值,用于指定用于名称解析的超时值(以毫秒为单位)。如果分辨率超过此超时值,则该操作将被取消。初始值为零,意味着无超时(无限)。如果使用NAME_RESOLUTION_TIMEOUT指定DNS超时,每个请求有一个线程的开销。
dwConnectTimeout
[in]integer类型的值,用于指定用于服务器连接请求的超时值(以毫秒为单位)。如果连接请求的时间超过此超时值,则该请求将被取消。初始值为60,000(60秒)。
dwSendTimeout
[in]integer类型的值,用于指定用于发送请求的超时值(以毫秒为单位)。如果发送请求的时间超过此超时值,则发送将被取消。初始值为30,000(30秒)。
dwReceiveTimeout
[in]类型integer的值,指定接收对请求的响应的超时值(以毫秒为单位)。如果响应超过此超时值,则该请求将被取消。初始值为30,000(30秒)。
返回值
如果成功,返回一个有效的会话句柄,否则返回NULL。要检索扩展错误信息,请调用GetLastError.返回的错误代码有:
错误代码 |
描述 |
ERROR_WINHTTP_INCORRECT_HANDLE_STATE |
所请求的操作不能执行,因为提供的手柄不在正确的状态。 |
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE |
提供的手柄类型对于此操作是不正确的。 |
ERROR_WINHTTP_INTERNAL_ERROR |
发生内部错误。 |
ERROR_NOT_ENOUGH_MEMORY |
没有足够的内存来完成请求的操作。(Windows错误代码) |
ERROR_INVALID_PARAMETER |
超时参数中的一个或多个具有除-1之外的负值。 |
备注
即使在异步模式下使用WinHTTP(即在WinHttpOpen中设置了WINHTTP_FLAG_ASYNC)时,此函数也可以同步运行。返回值表示成功或失败。要获取扩展错误信息,请调用GetLastError.
值为0或-1将超时等待无限。大于0的值将以毫秒为单位设置超时值。例如,30,000将超时设置为30秒。除-1之外的所有负值都会导致功能失败,并显示ERROR_INVALID_PARAMETER。
重要如果使用WinHttpSetOption和WINHTTP_OPTION_RECEIVE_TIMEOUT设置了一个小的超时,则它可以覆盖使用dwReceiveTimeout参数设置的值,导致响应超出预期终止。为避免这种情况,请不要使用WINHTTP_OPTION_RECEIVE_TIMEOUT选项设置超过使用dwReceiveTimeout设置的值的超时。