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
如果有帮到你,欢迎点赞收藏关注哦!