假设现在我们的Agent需要向工厂服务器查询设备的数据,这时候可以通过工厂服务器提供的接口进行查询,大致过程如下图所示:
1.了解HTTP API
首先,我们要先了解什么是HTTP API?
我们可以简单的将其理解为:程序通过约定好的地址和请求格式,向服务器获取数据或执行操作的接口。
例如:
查询设备:获取设备温度和运行状态。
查询故障:获取某台设备的故障记录。
调用大模型:把问题发送给模型,并接收回答
列举一些常见的HTTP方法:
| 方法 | 常见用途 |
| GET | 查询数据 |
| POST | 提交数据或发起处理请求 |
| PUT/PATCH | 更新数据 |
| DELETE | 删除数据 |
这只是参考,实际做什么怎么做还是要看API的设计和标准。
2.使用requests发送请求
Python中常用requests库请求HTTP API。首先我们要执行安装指令:
pip install requests安装完成之后,我们使用一个公开的测试API进行练习。
#导入requests库 import requests #设定目标接口地址 url = "https://jsonplaceholder.typicode.com/todos/1" #对目标接口地址进行get操作,并设置最多等待十秒 response = requests.get(url, timeout=10) #打印状态码 print(response.status_code) #尝试将返回结果转换成json格式 print(response.json())列举一些常见的状态码:
| 状态码 | 含义 |
| 200 | 请求成功 |
| 400 | 请求参数有问题 |
| 401 | 未通过身份认证 |
| 403 | 没有相应访问权限 |
| 404 | 资源不存在 |
| 500 | 服务端发生错误 |
我们注意到,在上面的示例代码中只是打印出来请求结果,并没有对结果进行处理,在实际中我们要对不同的返回结果进行不同的处理,下一步我们来对结果进行处理。
import requests url = "https://jsonplaceholder.typicode.com/todos/1" try: response = requests.get(url, timeout=10) response.raise_for_status() data = response.json() print(data) except requests.exceptions.Timeout: print("请求超时") except requests.exceptions.HTTPError as error: print(f"HTTP 请求失败:{error}") except requests.exceptions.RequestException as error: print(f"网络请求发生错误:{error}") except ValueError: print("响应内容不是有效的 JSON")这里出现了一个新的函数response.raise_for_status(),这是一个十分重要的函数,如果服务器相应状态异常,他会抛出异常,让程序进行异常处理分支。