Python调用webapi,使用Token认证

需求

使用python在程序中调用webapi接口,将产生的数据通过接口录入数据库。
前期使用.NetCore框架已经写好数据库新增接口,且使用api需要登录并生成Token,也可以通过Token直接验证。

Python支持的webapi访问方法

参考python实现API的调用一文,API的调用和接口的调用都是类似一个HTTP请求,而调用最主要就是根据相应的规则将请求方式、请求头、URL、以及请求体封装好然后发送请求,就可以实现相应的调用。
这里使用了requests

查看api接口调用方式

通过Swagger查看端口,获得url。一般需要验证的api需要在执行前验证用户密码生成Token。我们可以在Swagger中先执行一遍,记录下response的内容。
Swagger接口功能测试界面:
在这里插入图片描述
接口返回内容:
在这里插入图片描述

可以明确,调用接口的url,包含授权Token的header,以及data的格式,只需要在Python程序里将这些匹配好传递给api就可以。

代码

import requests
import json

url = "http://xxx.16.50.xx:xxxx/dev-api/Fire/add" # webapi的url
headers = {"accept": "*/*",
           "Content-Type": "application/json",
           "Authorization": "Bearer  你的Token"
            }
data={
  "param1": 0,
  "param2": 0,
  "etc":"etc"
}
data_json= json.dumps(data)     # data转为json格式
response = requests.post(url,headers = headers, data = data_json)
print(response.text)

需要注意的是,data的内容进行了json格式的强制转换,因为指定了json形式的输入格式

Token在重新登陆后会刷新,因此实际应用中不能直接写固定的Token。应该先访问登录的接口实时获取Token,然后使用这个Token访问数据接口。

在这里插入图片描述
执行后,成功获得api返回的信息。查看数据库成功插入数据。

参考:

http://t.csdn.cn/tZomg

如果有帮到你,欢迎点赞收藏关注哦!

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装 OpenWRT 在 Windows 系统下不是一个常规做法,因为 OpenWRT 通常是安装在路由器上的嵌入式系统。但是,你可以安装一个虚拟机软件(如 VirtualBox)来模拟一个路由器环境,然后在其中安装 OpenWRT。 安装 OpenWRT 可以参考官方文档:https://openwrt.org/docs/guide-quick-start/start 安装完成后,你需要安装 Python3 和相关的库来编写脚本调用 OpenWRT 的 API 接口来修改 LAN 口的网关地址。可以通过在 OpenWRT 的命令行中执行以下命令来安装: ``` opkg update opkg install python3 opkg install python3-requests ``` 安装完 Python3 和 requests 库后,你可以编写 Python 脚本来调用 OpenWRT 的 API 接口来修改 LAN 口的网关地址。这里提供一个参考代码: ```python import requests # 修改 LAN 口的网关地址 def set_lan_gateway_address(new_address): url = 'http://192.168.1.1/cgi-bin/luci/rpc/uci?auth=your_auth_token' headers = {'Content-Type': 'application/json'} data = { 'jsonrpc': '2.0', 'id': 1, 'method': 'call', 'params': ['uci', 'set', {'config': 'network', 'type': 'interface', 'name': 'lan', 'values': {'gateway': new_address}}], } response = requests.post(url, headers=headers, json=data) return response.json() # 调用 set_lan_gateway_address 函数来修改 LAN 口的网关地址 response = set_lan_gateway_address('192.168.1.254') print(response) ``` 需要注意的是,上面的代码中的 `auth=your_auth_token` 部分需要替换成你自己的认证 token。你可以在 OpenWRT 的 web 界面中获取到这个 token。 此外,还需要注意的是,修改 LAN 口的网关地址可能会导致网络连接中断,因此需要谨慎操作。如果需要测试,请先备份原始配置,以便出现问题时可以还原。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值