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 和合适的二进制写入路径,而不是让这些字节经过文本转换。

相关文章