autohotkey可通过五种方式实现网络交互:一、winhttp.winhttprequest.5.1(内置com,轻量高效);二、curl.exe(命令行,灵活可控);三、ie com控件(js渲染网页模拟);四、webview2(edge内核,现代web支持);五、powershell invoke-restmethod(自动json解析与认证)。

如果您希望在AutoHotkey脚本中实现与网络服务的交互,例如向API端点提交数据、获取响应内容或提取网页中的结构化信息,则需借助Windows系统原生组件或外部工具完成HTTP通信。以下是几种可行的技术路径:
一、使用WinHttp.WinHttpRequest.5.1 COM对象
该方法利用Windows内置的WinHTTP组件,无需额外依赖,支持GET/POST请求、自定义请求头、SSL验证及响应状态码读取,适用于大多数RESTful API调用场景。
1、创建WinHttpRequest对象实例,指定协议版本与超时参数。
2、调用Open方法设置请求方式(如"GET"或"POST")、目标URL及是否异步执行。
3、若为POST请求,使用SetRequestHeader添加Content-Type等头部字段,并通过Send方法传入JSON字符串或表单数据。
4、检查Status属性确认返回码为200,再通过ResponseText属性获取原始响应文本。
5、对JSON响应可配合内置ParseJSON函数(需引入第三方库)或正则提取关键字段;对HTML响应可用RegExMatch定位标签内文本。
二、调用curl.exe命令行工具
通过运行已安装的curl可执行文件发起HTTP请求,适合需要复杂参数控制(如证书路径、代理配置、重试策略)或处理二进制响应(如图片下载)的情况。
1、确保系统PATH中包含curl.exe路径,或在脚本中指定其绝对位置。
2、构造命令行字符串,例如:"curl -X GET -H ""Accept: application/json"" https://api.example.com/data"。
3、使用RunWait配合临时文件将输出重定向至磁盘,避免控制台闪烁。
4、用FileRead读取临时文件内容,再根据需要解析JSON或HTML片段。
5、执行完毕后调用FileDelete清除临时文件以保持环境整洁。
三、嵌入Internet Explorer COM控件模拟浏览器行为
适用于目标网站依赖JavaScript动态渲染、存在登录态校验或需触发DOM事件的场景,能完整复现用户操作流程但资源占用较高。
1、创建InternetExplorer.Application对象并设置Visible属性为False以隐藏窗口。
2、调用Navigate方法加载目标网页URL,使用Busy与ReadyState循环等待页面加载完成。
3、通过Document属性访问DOM树,使用getElementsByTagName或getElementById定位元素节点。
4、读取innerText或innerHTML属性提取可见文本内容,或调用click()方法模拟按钮点击。
5、若需获取网络请求响应,可结合F12开发者工具手动分析XHR地址后改用WinHttpRequest单独调用。
四、使用WebView2控件(AHK v2.0+)
基于Edge Chromium内核的现代Web容器,支持ES6+语法、Fetch API及完整的DevTools协议,适合构建高保真网页抓取逻辑。
1、确认系统已安装Microsoft Edge WebView2 Runtime且AHK版本不低于v2.0-a122。
2、调用WebView2_Create创建窗口句柄,并通过Navigate方法加载目标地址。
3、注册ScriptNotify回调函数捕获网页中window.chrome.webview.postMessage发送的数据。
4、在网页中注入JavaScript代码,使用fetch()发起跨域请求并将结果通过postMessage传出。
5、在AHK端接收消息后解析JSON字符串,提取所需字段并存储至变量或文件。
五、调用PowerShell子进程执行Invoke-RestMethod
借助PowerShell强大的网络模块,简化认证处理(如Bearer Token)、自动解压缩响应体、原生JSON反序列化等操作。
1、构造PowerShell命令字符串,例如:'Invoke-RestMethod -Uri "https://api.example.com" -Headers @{"Authorization"="Bearer your_token_here"}'。
2、使用RunWait启动powershell.exe进程,参数包含-Command与转义后的命令全文。
3、将输出重定向到临时文本文件,避免编码问题导致中文乱码。
4、使用FileRead读取文件内容,此时数据已是格式化后的纯文本而非原始字节流。
5、若API返回错误状态码,PowerShell默认抛出异常,需在命令中添加-catch {}块捕获并输出错误信息至同一文件。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











