函数参考


_WinHttpSetTimeouts

设置 HTTP 传输超时时间.

#Include <WinHttp.au3>
_WinHttpSetTimeouts($hInternet [, $iResolveTimeout = Default [, $iConnectTimeout = Default [, $iSendTimeout = Default [, $iReceiveTimeout = Default ]]]])

参数

$hInternet 由 _WinHttpOpen() 或者 _WinHttpOpenRequest() 函数返回的句柄.
$iResolveTimeout [可选参数] 超时值,按毫秒计算,用于域名解析的超时.默认为 0 毫秒.
$iConnectTimeout [可选参数] 超时值,按毫秒计算,用于服务器连接请求的超时.默认为 60000 毫秒.
$iSendTimeout [可选参数] 超时值,按毫秒计算,用于发送请求的超时.默认为 30000 毫秒.
$iReceiveTimeout [可选参数] 超时值,按毫秒计算,用于接受请求响应的超时.默认为 30000 毫秒.

返回值

成功: 返回 1
失败: 返回 0 并设置 @error:
1 - DllCall 失败

注意/说明

初始值为:

       - $iResolveTimeout = 0

       - $iConnectTimeout = 60000

       - $iSendTimeout = 30000

       - $iReceiveTimeout = 30000

相关

_WinHttpReceiveResponse

详情参考

http://msdn.microsoft.com/en-us/library/aa384116(VS.85).aspx

示例/演示


#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6

#include "WinHttp.au3"

Opt("MustDeclareVars", 1)

; 打开需要的句柄
Global $hOpen = _WinHttpOpen()

; 设置超时
_WinHttpSetTimeouts($hOpen, 10, 10, 10, 10)

; 获取连接句柄
Global $hConnect = _WinHttpConnect($hOpen, "msdn.microsoft.com")
; 指明请求:
Global $hRequest = _WinHttpOpenRequest($hConnect, Default, "en-us/library/aa384101(VS.85).aspx")

; 发送请求
_WinHttpSendRequest($hRequest)

; 等待响应
_WinHttpReceiveResponse($hRequest)

Global $sHeader
; 如果数据有效...
If _WinHttpQueryDataAvailable($hRequest) Then
    $sHeader = _WinHttpQueryHeaders($hRequest) ; ...获取完整头部
    ; 显示获取的头部
    MsgBox(0, "Header", $sHeader)
Else
    ; 显示获取的头部
    MsgBox(48, "Failure", "Maybe the new timeouts are unrealistic  ;)")
EndIf

; 清理
_WinHttpCloseHandle($hRequest)
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hOpen)