影刀RPA新手教程:第一个POST请求完全指南——让影刀向服务器提交数据
影刀RPA新手教程:第一个POST请求完全指南——让影刀向服务器提交数据
你好,我是林焱。
上一篇我们学会了怎么用GET请求从网络上拿数据。
这一篇我们反过来学:怎么把数据提交给服务器。
这个操作叫POST请求,它在影刀RPA里非常常见。
报名登记、订单提交、登录、表单填写,本质上都是POST。
一、POST请求和GET请求有什么不同
GET请求是"拿信息",POST请求是"交信息"。
GET请求的参数放在URL后面,所有人都能看到。
POST请求的参数放在请求体里,相对隐蔽,而且可以携带更多数据。
比如你要提交姓名和邮箱,用GET的话,URL会变成:
https://api.example.com/subscribe?name=张三&email=zhangsan@test.com用POST的话,URL保持不变,姓名和邮箱放在请求体里发过去。
二、案例主线:报名表单自动提交
我们今天做一个完整的案例。
假设公司有一个在线活动报名页面,需要每天把收集到的报名信息提交到后台。
报名信息包括:姓名、邮箱、手机号。
我们要让影刀自动读取Excel里的报名信息,一条一条用POST请求提交。
提交完成后,把成功和失败的结果分别记录到Excel里。
三、影刀安装与流程新建
如果你已经安装影刀,直接打开。
点击"新建应用",选择"流程型应用",命名"我的第一个POST请求"。
左边指令区搜索"HTTP",把"HTTP请求"拖到画布中间。
四、准备测试数据:Excel表格
先新建一个Excel文件,保存为"报名信息.xlsx"。
表格内容如下:
| 姓名 | 邮箱 | 手机号 |
|---|---|---|
| 张三 | zhangsan@test.com | 13800138000 |
| 李四 | lisi@test.com | 13900139000 |
| 王五 | wangwu@test.com | 13700137000 |
把这个Excel放在影刀能找到的位置,比如桌面或流程同目录。
五、读取Excel:用循环逐行处理
影刀里用"打开Excel"指令打开"报名信息.xlsx"。
然后用"读取Excel区域"指令读取全部数据,保存到变量"报名列表"。
"报名列表"是一个二维列表,第一行是表头,后面是数据。
接着拖入"ForEach列表循环",对"报名列表"进行循环。
注意跳过第一行表头,或者读取时指定从第二行开始。
拼多多店群自动化报活动上架!
六、元素定位:如果接口需要先从网页取Token
有些POST请求需要先登录,获取一个Token,然后才能提交。
这时候要用网页自动化打开登录页,填写账号密码,点击登录。
登录成功后,用"获取元素文本"或"执行JS脚本"拿到Token。
Token的存放位置可能在网页某个隐藏元素里,XPath写法示例:
//input[@id="token"]/@value或者用CSS选择器:
#token这个Token将作为POST请求Header里的Authorization字段。
七、变量和数据类型:报名信息怎么存
读取Excel后,每一行是一个列表。
比如第一行数据是:[“张三”, “zhangsan@test.com”, “13800138000”]。
我们可以用索引取值:
姓名 = 当前行[0] 邮箱 = 当前行[1] 手机号 = 当前行[2]也可以把每一行转成字典,方便后续用键名取值:
{"姓名":当前行[0],"邮箱":当前行[1],"手机号":当前行[2]}八、配置POST请求
拖入"HTTP请求"指令,属性区设置如下:
- 请求方法:POST
- 请求URL:
https://api.example.com/subscribe- 请求头:
Content-Type: application/json- 请求体:
{"name":"{{姓名}}","email":"{{邮箱}}","phone":"{{手机号}}"}- 保存结果至:提交响应
注意:影刀里用{{变量名}}把变量嵌入JSON字符串中。
九、JSON格式请求体怎么写
POST请求体常见格式有两种。
一种是JSON格式,Content-Type是application/json:
{"name":"张三","email":"zhangsan@test.com"}另一种是表单格式,Content-Type是application/x-www-form-urlencoded:
name=张三&email=zhangsan@test.com用哪种格式取决于接口文档。
如果接口要求JSON,就用JSON;如果要求表单,就用表单。
不确定的话,先问提供接口的人,或者用浏览器开发者工具看网页提交时用的格式。
十、流程控制:If判断处理成功失败
每次POST请求结束后,都要判断结果。
拖入"If判断",条件:
{{提交响应}} contains "success"如果成功,把"姓名 + 提交成功"写入"结果.xlsx"的"成功"sheet。
如果失败,把"姓名 + 失败原因"写入"失败"sheet。
这样跑完整个流程,成功失败一目了然。
十一、网页自动化:模拟表单操作备用
如果接口不稳定,也可以用网页自动化直接操作页面表单。
用"打开网页"打开报名页面。
用"输入文本"在姓名、邮箱、手机号输入框里填写内容。
用"点击元素"点击提交按钮。
用"获取元素文本"读取提交结果提示。
这种方式比HTTP请求慢,但兼容性更好,适合没有开放接口的系统。
十二、数据处理:把结果写入Excel
影刀的"写入Excel行"指令可以一次写一行数据。
循环里每次提交完,把结果追加到"结果.xlsx"的最后一行。
配置:
- 工作簿:结果.xlsx
- 工作表:Sheet1
- 起始单元格:A1
- 写入方式:追加行
- 写入内容:[“{{姓名}}”, “{{邮箱}}”, “{{提交结果}}”]
十三、鼠标键盘与图像:处理验证码弹窗
有时候提交表单会弹出验证码或滑动条。
影刀的"图像识别"指令可以识别验证码图片区域。
"移动鼠标"和"拖拽元素"可以完成滑动验证。
如果遇到验证码,一般建议先调用第三方打码平台,或者人工介入。
十四、进阶技能:批量提交与去重
实际场景中,报名信息可能重复。
提交前先用"数据去重"指令或Python代码去重。
也可以先查询一下该邮箱是否已经提交过,再决定是否提交。
查询用GET请求,提交用POST请求,两者组合使用。
十五、平台实战:把这个流程变成定时任务
流程跑通后,发布到影刀云调度平台。
设置每天下午6点执行,自动提交当天新增的报名信息。
TEMU店群矩阵自动化运营核价报活动
云端运行的好处是:你不需要一直开着电脑。
十六、系统联动:提交成功后发通知
提交成功后,可以给企业微信或钉钉机器人发消息。
比如:“今日报名提交完成,成功50条,失败3条。”
失败的消息单独列出来,方便人工复核。
十七、工程化规范:命名与异常处理
变量命名建议:
- 原始响应:提交响应
- 解析结果:提交结果字典
- 成功标记:是否成功
每个POST请求外加TryCatch:
- Try:发起POST请求
- Catch:记录异常信息,继续下一条
这样不会因为一条数据失败导致整个流程中断。
十八、速查表与报错
常见报错:
400 Bad Request:请求体格式写错了,比如JSON里少了一个逗号。
401 Unauthorized:缺少Authorization头,需要先登录。
403 Forbidden:接口拒绝访问,可能是没有权限或IP被封。
404 Not Found:URL地址错了。
500 Internal Server Error:服务器内部错误,稍后重试。
十九、我踩过的坑:Content-Type没写对
我第一次写POST请求时,请求体用了JSON格式,但请求头没写Content-Type。
结果服务器当成表单处理,解析失败,一直返回400。
后来把请求头加上Content-Type: application/json才成功。
这个坑非常隐蔽,因为URL和请求体看起来都没问题。
记住:POST请求一定要确认请求头和请求体格式匹配。
二十、POST请求完整流程总结
第一步:准备Excel数据,格式为姓名、邮箱、手机号。
第二步:用"打开Excel"和"读取Excel区域"读取数据。
第三步:用ForEach循环逐行处理。
第四步:把每行数据赋值给姓名、邮箱、手机号变量。
第五步:配置HTTP POST请求,请求体用JSON格式嵌入变量。
第六步:保存响应到"提交响应"变量。
第七步:If判断响应里是否包含success字段。
第八步:成功写入成功sheet,失败写入失败sheet。
第九步:运行流程,检查结果。
做这些自动化流程的时候,我喜欢把接口地址和参数规范整理在 home.linyan.cloud 上,避免不同项目之间互相抄错。
建议你从零开始也养成这个习惯。
作者:林焱
#影刀RPA #RPA教程 #POST请求 #HTTP请求 #表单提交 #JSON #零基础学RPA #影刀新手