影刀RPA HTTP请求完全指南:调用API接口实战教程
影刀RPA HTTP请求完全指南:调用API接口实战教程
作者:林焱
影刀不只能操作网页,还能直接发 HTTP 请求——这意味着你可以接入任何有 API 的服务:天气数据、汇率查询、企业微信机器人、各类 SaaS 系统……
HTTP 请求是影刀能力的重要扩展,把它学会,能做的事情直接翻倍。
一、什么时候用 HTTP 请求
- 调用外部 API:天气、地图、翻译、OCR、短信等第三方 API
- 发送通知:企微/钉钉/飞书机器人的 Webhook 推送
- 与内部系统对接:公司内部有 HTTP 接口的系统
- 数据提交:把采集的数据提交到指定接口入库
二、HTTP 请求基础概念
先把几个概念说清楚,不然看到参数配置会懵:
| 概念 | 说明 |
|---|---|
| GET | 获取数据,参数附在URL后面 |
| POST | 提交数据,参数放在请求体里 |
| 请求头(Headers) | 附加信息,如认证Token、Content-Type |
拼多多店群自动化上架方案
| 请求体(Body) | POST请求携带的数据,通常是JSON格式 |
| 响应状态码 | 200=成功,401=未授权,404=不存在,500=服务器错误 |
| 响应体 | 接口返回的数据,通常是JSON文本 |
三、发送 GET 请求
操作路径:指令库 → 网络操作 → 发送HTTP请求
示例:查询天气
免费天气API:https://wttr.in/北京?format=j1
响应 = 发送HTTP请求( 方法 = "GET", URL = "https://wttr.in/%E5%8C%97%E4%BA%AC?format=j1", // 北京的URL编码 请求头 = {}, 超时 = 10000 // 10秒超时 ) 如果 响应.状态码 == 200: 天气JSON = 响应.响应体 // 解析JSON取出温度 天气数据 = JSON解析(天气JSON) 当前温度 = 获取JSON值(天气数据, "current_condition[0].temp_C") 记录日志("当前北京气温:" + 当前温度 + "°C") 否则: 记录日志("天气API调用失败,状态码:" + 响应.状态码)四、发送 POST 请求(JSON Body)
示例:调用企业微信机器人
Webhook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的key" 请求数据 = { "msgtype": "text", "text": { "content": "自动化任务完成,共处理 100 条数据" } } 响应 = 发送HTTP请求( 方法 = "POST", URL = Webhook, 请求头 = {"Content-Type": "application/json"}, 请求体 = JSON转文本(请求数据), 超时 = 10000 ) 如果 响应.状态码 == 200: 结果JSON = JSON解析(响应.响应体) 返回码 = 获取JSON值(结果JSON, "errcode") 如果 返回码 == "0": 记录日志("企微消息发送成功") 否则: 记录日志("企微消息发送失败:" + 获取JSON值(结果JSON, "errmsg"))五、带认证的 API 请求
大多数 API 需要身份认证,常见方式:
方式一:API Key 放在请求头里
响应 = 发送HTTP请求( 方法 = "GET", URL = "https://api.example.com/data", 请求头 = { "Authorization": "Bearer " + API_Key, "Content-Type": "application/json" } )方式二:API Key 放在 URL 参数里
URL = "https://api.example.com/data?api_key=" + API_Key + "&query=北京" 响应 = 发送HTTP请求(方法="GET", URL=URL) 方式三:Basic Auth(用户名密码)
// 把 用户名:密码 做 Base64 编码 认证字符串 = Base64编码(用户名 + ":" + 密码) 响应 = 发送HTTP请求( 方法 = "GET", URL = "https://api.example.com/data", 请求头 = {"Authorization": "Basic " + 认证字符串} )TEMU店群如何管理运营?
六、解析 JSON 响应
大多数 API 返回 JSON 格式的数据,用影刀的 JSON 指令解析:
响应体文本 = 响应.响应体 // 整体解析 数据对象 = JSON解析(响应体文本) // 取顶层字段 状态 = 获取JSON值(数据对象, "status") 数量 = 获取JSON值(数据对象, "total") // 取嵌套字段(用点号路径) 城市 = 获取JSON值(数据对象, "data.city.name") // 取数组的第一个元素 第一条 = 获取JSON值(数据对象, "data.items[0]") // 取数组长度 条数 = 获取JSON数组长度(数据对象, "data.items")七、分页 API 采集
很多 API 一次只返回有限条数据,需要翻页:
页码 = 1 每页条数 = 50 所有数据 = 创建列表() 循环: // 构建请求 API_URL = "https://api.example.com/items?page=" + 页码 + "&per_page=" + 每页条数 响应 = 发送HTTP请求("GET", API_URL, 请求头={"Authorization": "Bearer " + Token}) 如果 响应.状态码 != 200: 记录日志("API请求失败,页码:" + 页码) 跳出循环 数据 = JSON解析(响应.响应体) 当前页数据 = 获取JSON值(数据, "items") 当前页条数 = 获取列表长度(当前页数据)  // 合并数据 ForEach 条目 in 当前页数据: 添加到末尾(所有数据, 条目) // 判断是否还有下一页 总条数 = 获取JSON值(数据, "total") 如果 页码 * 每页条数 >= 文本转数字(总条数): 跳出循环 页码 = 页码 + 1 等待(1000) // 避免请求太频繁 记录日志("共获取 " + 获取列表长度(所有数据) + " 条数据")八、常见错误处理
| 状态码 | 含义 | 处理方式 |
|---|---|---|
| 200 | 成功 | 正常处理响应 |
| 400 | 请求参数错误 | 检查请求体格式 |
| 401 | 未授权 | 检查 API Key 是否正确 |
| 403 | 无权限 | 检查账号权限 |
| 404 | 接口不存在 | 检查 URL 是否正确 |
| 429 | 请求太频繁 | 加等待时间,降低请求频率 |
| 500 | 服务器错误 | 稍后重试 |
学会了HTTP请求,影刀就不只是浏览器自动化工具了——它变成了一个可以接入所有互联网服务的自动化平台。
作者:林焱