通过显式代理发起 AutoHotkey 2 请求
在 AutoHotkey 2 中使用 WinHTTP COM 对象选择代理,并检查返回的 HTTP 状态。
AutoHotkey 2 可以使用 Windows 的 WinHttpRequest COM 对象,通过显式代理发起请求:
request := ComObject("WinHttp.WinHttpRequest.5.1")
request.SetTimeouts(5000, 5000, 10000, 20000)
request.SetProxy(2, "proxy.example.net:8080", "localhost")
request.Open("GET", "https://example.net/status", false)
request.Send()
MsgBox request.Status " " request.StatusText
2 选择所提供的代理配置。对于所示公开 HTTPS 检查,当允许使用公开路由且未配置代理凭据时,HTTP 代理列表可提供候选的中转主机与端口值。可选的第三个参数是绕过列表;这里 localhost 走直连。
最后的 false 位于 Open 中,表示同步请求。这个小脚本会先等待完成,再读取状态。长时间运行的桌面自动化应把这段等待计入交互流程。
如果代理需要凭据,请在 Open 之后、Send 之前设置:
request.SetCredentials(proxyUser, proxyPassword, 1)
应用程序提供这两个变量。最后的标志 1 选择代理凭据。标志 0 选择目标服务器的凭据。
文本响应成功后,request.ResponseText 包含返回的文本。二进制下载应使用 ResponseBody 和合适的二进制写入路径,而不是让这些字节经过文本转换。