勇芳软件工作室.汉化:  WinHTTP Reference > WinHTTP Functions >

WinHttpSetTimeouts

Previous pageReturn to chapter overviewNext page

描述

 

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]WinHttpOpenWinHttpOpenRequest返回的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。

 

重要如果使用WinHttpSetOptionWINHTTP_OPTION_RECEIVE_TIMEOUT设置了一个小的超时,则它可以覆盖使用dwReceiveTimeout参数设置的值,导致响应超出预期终止。为避免这种情况,请不要使用WINHTTP_OPTION_RECEIVE_TIMEOUT选项设置超过使用dwReceiveTimeout设置的值的超时。