影刀RPA新手教程:HTTP请求是什么——用大白话讲清楚GET和POST的区别

0 阅读11分钟

影刀RPA新手教程:HTTP请求是什么——用大白话讲清楚GET和POST的区别

你好,我是林焱。

很多刚接触影刀RPA的朋友一看到"HTTP请求"四个字就懵了。

API、GET、POST、Header、JSON,这些词像天书一样。

我刚开始学影刀的时候也这样,点了一个"HTTP请求"指令,满屏参数不知道该填什么。

后来我用一个生活中的类比想通了,今天我把这个类比教给你。

你不需要会编程,不需要懂英文,只要去餐厅吃过饭,就能听懂。

一、先把HTTP请求想成"向服务员下单"

我们去餐厅吃饭,手里拿的是菜单。

菜单上写着:宫保鸡丁58元、番茄炒蛋28元、米饭3元。

你看着菜单,告诉服务员:"我要一份宫保鸡丁,少放辣。"

服务员把你的单子传给厨房,过了一会儿,菜端上来了。

这个过程中,菜单就是API,点菜就是HTTP请求,厨房就是服务器,端上来的菜就是返回结果。

API是一本菜单,告诉你这家"餐厅"能提供什么数据或功能。

HTTP请求是你对服务员说的话,可以是"问问题",也可以是"下单"。

服务器是厨房,收到你的话之后开始处理。

在这里插入图片描述

返回结果就是端上来的菜,可能是数据,也可能是一句"对不起,没有这道菜"。

影刀里的HTTP请求指令,就是让你扮演一个"自动顾客",代替你向服务员说话。

二、GET请求:你问"有没有XX"

你走进一家奶茶店,问服务员:"你们有没有珍珠奶茶?"

服务员回答:"有的,中杯12元,大杯15元。"

这就是GET请求。

你只问了一句话,没有让服务员做任何改变。

你只是"获取信息",没有改变任何东西。

在影刀里,GET请求用来从网络上拿数据回来。

比如查天气:你问天气服务器,"北京今天多少度?"

服务器回答你:"北京今天25度,晴。"

数据从服务器流向你,服务器没有任何变化。

三、POST请求:你告诉服务员"我要XX"

还是这家奶茶店。

你说:"我要一杯大杯珍珠奶茶,三分糖,去冰。"

服务员在电脑上录入,厨房开始制作。

这就是POST请求。

在这里插入图片描述

你不仅说话了,还让服务器发生了改变。

服务器可能新建了一条订单、保存了你的地址、更新了你的积分。

在影刀里,POST请求用来向服务器提交数据。

比如你在一个报名页面填写姓名和手机号,点击提交。

影刀里的POST请求会把你填写的信息打包发给服务器。

服务器收到后,在数据库里新增一条报名记录。

四、GET和POST最直观的区别

GET是"拿东西",POST是"交东西"。

GET参数放在URL里,像把菜名写在纸条上递给服务员。

POST参数放在请求体里,像把菜单和点单要求装在信封里交给服务员。

GET一般用于查询、搜索、获取。

POST一般用于提交、保存、修改、登录。

[video(video-3DknQSk4-1782550508179)(type-csdn)(url-live.csdn.net/v/embed/526…)]

GET如果重复点,一般不会有副作用。

POST如果重复点,可能会重复下单、重复提交。

五、案例主线:查天气和报名表单

我们今天用一个完整的案例来串起来。

在这里插入图片描述

第一个场景:每天早上8点,自动查北京天气,把温度写进Excel。

第二个场景:公司有一个在线报名表单,需要每天把收集到的姓名和邮箱提交过去。

两个场景一个用GET,一个用POST。

走完这两个流程,你就算真正会用HTTP请求了。

六、影刀安装与基础环境准备

如果你还没装影刀,先去影刀官网下载社区版,安装过程一直点下一步就行。

装好后打开,点击"新建应用",选择"流程型应用"。

左边是指令面板,中间是画布,右边是属性区。

我们今天用到的指令都在"网络"分类里,找到"HTTP请求"拖到画布上。

七、元素定位:万一要用网页自动化补位

虽然今天主题是HTTP请求,但真实项目中经常混合使用网页自动化。

比如某个接口需要先从网页里拿到一个Token,再用HTTP请求。

影刀提供四种元素定位方式:元素捕获、XPath、CSS选择器、正则表达式。

元素捕获最简单,点一下网页上的输入框,影刀自动记住它的位置。

XPath适合结构复杂但稳定的页面,比如:

//input[@id="token"]

CSS选择器写法更短,比如:

在这里插入图片描述

#token

正则表达式用来从一段文字里提取符合规则的内容,后面讲Python时会用到。

我当时踩过这个坑:以为网页自动化和HTTP请求只能二选一,其实它们经常一起用。

先用HTTP请求拿数据,数据不够完整再用网页自动化补一刀。

八、变量与数据类型:把请求结果存起来

影刀的变量就像一个盒子,你可以把数据放进去。

字符串变量装文字,比如"北京今天25度"。

数字变量装数字,比如25。

列表变量装一排数据,比如["北京", "上海", "广州"]。

字典变量装键值对,比如{"city":"北京", "temp":25}。

HTTP请求返回的结果通常是字符串。

如果是JSON格式的字符串,还要再用"JSON解析"指令转成字典。

后面我们会一步一步写清楚。

九、流程控制:让请求有节奏地跑

流程控制就是决定什么时候做什么。

If判断:如果请求成功,就继续;如果失败,就报错停止。

For循环:如果有10个城市要查天气,就一个城市一个城市循环查。

在这里插入图片描述

While循环:如果服务器还没返回,就等一会儿再试。

TryCatch:如果请求超时了,不要直接崩溃,先记录错误再重试。

一个稳健的HTTP请求流程,通常长这样:

发起请求 → 判断状态码是否成功 → 解析返回 → 处理数据 → 保存或输出。

十、网页自动化:打开浏览器拿到基础信息

在查天气之前,有时候需要先打开一个网页确认接口地址。

影刀用"打开网页"指令,填写URL,比如某个天气查询网站。

然后用"获取元素文本"指令,读取页面上的某个提示信息。

这个文本可以存进变量,作为后续HTTP请求的参数。

比如页面上显示当前城市的ID是"101010100",影刀把它读出来,拼到GET请求的URL里。

https://api.weather.com/v1/current?city=101010100

这里"?city=101010100"就是GET请求的参数。

十一、数据处理:把天气结果整理成表格

HTTP请求返回的原始数据往往是JSON,看起来像这样:

{
  "city": "北京",
  "temp": 25,
  "weather": "晴"
}

用"JSON解析"指令把它转成字典变量后,可以这样取:

城市 = dict["city"]
温度 = dict["temp"]
天气 = dict["weather"]
![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/19d63db0bf34418485748dc1e8313ec4~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5p6X54SxX1JQQUFJ:q75.awebp?rk3s=f64ab15b&x-expires=1786183948&x-signature=5sdffS%2FO2m9cuA4HWr2%2BP2YQlWg%3D)

然后用"写入Excel单元格"指令,把这三个值写进表格。

数据处理的目的就是把网络上的原始数据,变成你人类能看懂的报表。

十二、鼠标键盘与图像:不是HTTP请求也要会

HTTP请求可以走"后台通道",但有些网站防机器人,必须用鼠标键盘模拟。

比如登录时需要拖动滑块,这时要用"移动鼠标"和"拖拽元素"指令。

图像识别可以帮你点击屏幕上找不到固定元素的按钮。

"鼠标点击"指令:点击某个坐标或元素。

"键盘输入"指令:在输入框里模拟键盘打字。

"图像识别"指令:找到屏幕上和参考图片相似的区域。

一个完整的项目里,HTTP请求、网页自动化、鼠标键盘、图像识别经常搭配使用。

十三、进阶技能:HTTP请求的高级参数

HTTP请求除了URL和Method,还有几个常用参数。

请求头Header:相当于你的身份证、语言偏好、设备信息。

请求体Body:POST请求携带的数据。

超时时间:等多久没响应就放弃。

编码格式:通常用UTF-8。

Content-Type:告诉服务器你发的是什么格式,常见有application/json和application/x-www-form-urlencoded。

Authorization:有些接口要求带令牌才能访问,后面会详细讲。

在这里插入图片描述

这些参数在影刀"HTTP请求"指令的属性面板里都有对应输入框。

十四、平台实战:把天气查询做成定时任务

影刀云平台可以设置定时任务。

你把做好的天气查询流程发布到云端,设置每天早上8点执行。

云端会自动调度一个机器人去跑这个流程,并把结果回传到控制台。

这样你每天到公司,Excel里已经有最新的天气数据。

我在做这个Demo的时候,把结果同时写到本地Excel和云表格里,方便手机和电脑查看。

十五、系统联动:Excel、邮件、微信通知串起来

HTTP请求不是孤立存在的。

查到天气后,你可以把温度写到Excel里。

如果温度超过30度,再发一封邮件提醒同事带伞。

或者用企业微信机器人发一条消息:"今天高温,注意防暑。"

影刀的"发送邮件""企业微信机器人""钉钉机器人"等指令就是干这个的。

系统联动的本质是:数据从一个系统流进影刀,再流出到另一个系统。

十六、工程化规范:给你的流程留条后路

流程写完后一定要加注释,说明每个步骤是干嘛的。

[video(video-UXe0e7IH-1782550514825)(type-csdn)(url-live.csdn.net/v/embed/526…)] 在这里插入图片描述

变量命名要看得懂,比如用"天气结果"而不是"a"。

重要参数用变量管理,比如URL、城市ID、Token,不要硬写在指令里。

日志要记录关键节点,方便后面排查问题。

我在第一个HTTP请求流程里没加TryCatch,结果网络一抖动就崩溃,后面找了半小时才定位到。

从那以后,我的HTTP请求一定会套一层异常处理。

十七、速查表与报错:遇到问题先查这里

常见错误:

400 Bad Request:请求参数写错了,服务器看不懂。

401 Unauthorized:没有权限,多半是Authorization头没填或填错了。

403 Forbidden:服务器拒绝访问,可能是IP被封或Token过期。

404 Not Found:URL地址错了,像走进了不存在的餐厅包间。

500 Internal Server Error:服务器自己出错了,不怪你,稍后重试。

这些状态码我们后面有一篇专门讲,遇到先别慌,先看返回文本和日志。

十八、真实代码:GET请求查天气

打开影刀,新建流程,拖入"HTTP请求"指令。

参数配置如下:

  • 请求方法:GET
  • 请求URL:
https://api.example.com/weather?city=北京

在这里插入图片描述

  • 请求头:
Content-Type: application/json
  • 超时时间:10秒

  • 保存结果至变量:天气响应

然后用"JSON解析"指令,把"天气响应"转成字典,保存到"天气字典"。

再用"获取字典值"指令:

  • 字典:天气字典
  • 键:temp
  • 保存至:当前温度

最后用"写入Excel单元格"指令,把当前温度写进A1单元格。

十九、真实代码:POST请求提交表单

拖入第二个"HTTP请求"指令。

参数配置如下:

  • 请求方法:POST
  • 请求URL:
https://api.example.com/subscribe
  • 请求头:
Content-Type: application/json
  • 请求体:
{
  "name": "张三",
  "email": "zhangsan@example.com"
}
  • 保存结果至变量:提交结果

在这里插入图片描述

然后用"If判断"指令判断提交结果是否包含"success"。

如果成功,记录一条日志;如果失败,把错误信息写进Excel的报错 sheet。

二十、HTTP请求不是洪水猛兽

你不需要懂编程,也能用影刀发出HTTP请求。

记住这个类比就够了:

API是菜单,GET是问问题,POST是下单。

HTTP请求就是你对服务员说的话,服务器是厨房,返回结果就是端上来的菜。

影刀把这句话替你说了,而且能一遍遍自动说。

我当时刚开始学时,看API文档都头大,后来把每一行参数都填进影刀里试一遍,反而慢慢理解了。

别怕报错,报错就是服务员告诉你:"这道菜没有"或者"你点单的方式不对"。

另外,我在整理自己的学习笔记时,会把常见问题放到 home.linyan.cloud 上,方便后续查找和复盘。

这不是广告,只是我自己学习过程中养成的习惯,推荐你也建一个自己的知识库。

作者:林焱

#影刀RPA #RPA教程 #HTTP请求 #GET请求 #POST请求 #API入门 #影刀新手 #零基础学RPA #自动化办公