影刀RPA深度教程:HTTP请求与API对接实战
影刀不仅能做网页自动化,还能直接调用API接口。
掌握了HTTP请求指令,你能对接几乎任何有API的平台(淘宝开放平台、拼多多开放平台、飞书开放平台、企微开放平台等)。
先装好环境
www.yingdao.com 下载,社区版免费。
第一部分:HTTP请求基础(GET/POST)
GET请求(获取数据)
场景:调用一个公开API,获取天气数据。
指令:HTTP请求 方法:GET URL:https://api.weatherapi.com/v1/current.json?key=YOUR_KEY&q=Beijing Headers: Accept: application/json 保存响应体到:response_text响应处理:
指令:JSON转对象 JSON字符串:response_text 保存对象到:response_obj 指令:获取JSON对象属性 JSON对象:response_obj 属性路径:current.temp_c 保存结果到:temptemp的值就是北京当前温度(摄氏度)。
POST请求(提交数据)
场景:调用一个API,提交订单数据。
指令:HTTP请求 方法:POST URL:https://api.example.com/orders Headers: Content-Type: application/json Authorization: Bearer xxxxx(你的token) Body: { "product_id": "P001", "quantity": 2, "user": "张三" } 保存响应体到:response_text坑点:Body里的字符串要用双引号,不能用单引号,否则JSON解析失败。
第二部分:HTTP请求的6个关键配置
拼多多店群自动化报活动上架!
1. Headers(请求头)
最常用的Headers:
| Header名 | 值 | 用途 |
|---|---|---|
Content-Type | application/json | 告诉服务器Body是JSON格式 |
Authorization | Bearer xxxxx | 身份认证(token方式) |
User-Agent | Mozilla/5.0... | 模拟浏览器,防止被封 |
Cookie | session=xxxxx | 会话认证 |
在影刀里配置Headers:
指令:HTTP请求 Headers(点击编辑): 键:Content-Type 值:application/json 键:Authorization 值:Bearer abc123xyz2. 超时时间
默认超时是30秒。如果API响应慢,要改大:
指令:HTTP请求 超时时间(毫秒):60000 ← 改成60秒3. 重定向处理
有些API会返回301/302重定向,影刀默认会自动跟随重定向。
如果需要拿到重定向前的响应头(比如取Location头),要在API文档里查是否支持。
4. 响应状态码判断
HTTP请求成功后,要判断状态码确认是否真的成功:
HTTP请求 → 保存到 response_text 和 status_code If status_code == 200 → 解析 response_text(成功) Else → 打印日志:"API调用失败,状态码:" + status_code → 打印日志:"响应内容:" + response_text(看错误信息)5. 错误处理
API调用可能失败(网络问题、token过期、参数错误),必须包Try-Catch:
Try → HTTP请求(可能超时或报错) → 判断 status_code Catch → 打印日志:"HTTP请求失败:" + error_message → 等待5秒后重试(用循环+计数器实现重试逻辑)6. 重试机制(重要)
API偶尔会失败,实现自动重试:
设置变量:retry_count = 0 设置变量:max_retry = 3 While 条件:retry_count < max_retry Try → HTTP请求 → If status_code == 200 → Break(成功,退出循环) → Else → retry_count = retry_count + 1,等待2秒 Catch → retry_count = retry_count + 1 → 等待2秒 If retry_count == max_retry → 打印日志:"重试" + max_retry + "次后仍失败" → 发飞书告警第三部分:真实案例——调用淘宝开放平台API
需求:获取店铺所有商品的价格和库存
淘宝开放平台(top.com)的API需要签名认证,流程比较复杂。
步骤1:获取access_token
POST https://oauth.taobao.com/token Body: grant_type=authorization_code &code=xxxx &client_id=your_app_key &client_secret=your_app_secret  &redirect_uri=your_redirect_uri 保存响应到:token_response JSON转对象 → 取 access_token步骤2:调用商品列表API
GET https://eco.taobao.com/router/rest 参数: method=taobao.items.onsale.get access_token=上一步获取的token fields=num_iid,title,price,num page_no=1 page_size=100 保存响应到:items_response JSON转对象 → items_obj步骤3:解析商品列表
获取JSON对象属性:items_obj["items"]["item"] → 保存到 items_list(列表) ForEach循环:items_list → title = loop_item["title"] → price = loop_item["price"] → stock = loop_item["num"] → 写入Excel:title, price, stock第四部分:真实案例——飞书开放平台API
飞书的API文档非常完善,适合练手。
需求:通过API发送飞书消息(不用影刀的"飞书消息"指令,直接调API)
POST https://open.feishu.cn/open-apis/im/v1/messages Headers: Authorization: Bearer APP_ACCESS_TOKEN Content-Type: application/json Body: { "receive_id": "ou_xxxxxx",  "msg_type": "text", "content": "{\"text\":\"影刀流程执行完成\"}" } Query参数: receive_id_type: open_id关键坑点:
content的值必须是JSON字符串的JSON编码(就是字符串里还要有转义符\)receive_id_type可以是open_id、user_id、chat_id(群)
第五部分:用Python处理复杂HTTP场景
TEMU店群矩阵自动化运营核价报活动
有些HTTP场景影刀指令处理不了(比如签名计算、复杂的加密逻辑),用Python协同。
案例:计算淘宝API的签名
淘宝API要求对所有参数按字母排序后做MD5签名,影刀指令做不到,用Python:
指令:Python代码 代码: def main(args): import hashlib params = args['params'] # 字典类型,所有请求参数 app_secret = args['app_secret'] # 按key字母排序 sorted_params = sorted(params.items()) # 拼接成字符串 query = '' for k, v in sorted_params:  query += k + str(v) query = app_secret + query + app_secret # MD5签名 sign = hashlib.md5(query.encode('utf-8')).hexdigest().upper() return {'sign': sign} 参数:{"params": 请求参数字典, "app_secret": "xxxx"} 返回值保存到:sign_result第六部分:调试HTTP请求的方法
方法1:打印完整响应
HTTP请求 → 保存到 response_text 打印日志:"响应内容:" + response_text先看原始响应是什么,再决定怎么解析。
方法2:用Postman先测试
在影刀里写HTTP请求之前,先用Postman(或浏览器的开发者工具)测试API是否正常工作。
如果Postman能调通,影刀里参数抄过去就行。
方法3:查看HTTP请求的原始信息
打印日志:"状态码:" + status_code 打印日志:"响应头:" + response_headers有些API的错误信息在响应头里,不在响应体里。
第七部分:常见报错与解决
| 报错 | 原因 | 解决 |
|---|---|---|
| JSON解析失败 | 响应不是合法JSON(可能是HTML报错页面) | 先打印response_text看原始内容 |
| 401 Unauthorized | token过期或填错了 | 重新获取token |
| 403 Forbidden | 没有权限调用这个API | 检查API文档的权限要求 |
| 429 Too Many Requests | 调用频率超限 | 加等待时间,或申请提额 |
| 连接超时 | 网络问题,或API地址错了 | 用Postman先测试能否连通 |
| SSL证书错误 | 目标网站证书无效 | 在HTTP请求里勾选"跳过SSL证书验证" |
更多HTTP请求实战案例和API对接模板,可以在 home.linyan.cloud 查找。
#影刀RPA #HTTP请求 #API对接 #进阶教程
作者:林焱