如何用python腳本實現(xiàn)一次獲取token,多次使用token
1.兩種格式的文件
1)編寫配置文件Token.yaml(暫時為空),用來存放token值
另外:
用命令:pip3 install ruamel.yaml安裝ruamel.yaml模塊,用以去除yaml文件中的大括號

2)編寫配置文件access_token.yml,把token值寫到配置文件中的關鍵代碼如下:
# 把token值寫到配置文件access_token.yml中
def write_token(res):
curPath = os.path.abspath(os.path.dirname(__file__))
yamlPath = os.path.abspath(os.path.dirname(curPath) + os.path.sep + "configs/access_token.yml")
# yamlPath = os.path.dirname(os.path.abspath('.'))+'/data/access_token.yml'
# res = json.loads(res)
tokenValue = {
'access_token': res["access_token"]
}
with open(yamlPath, 'w', encoding='utf-8') as f:
yaml.dump(tokenValue, f)
logger.info("\n token值已保存至配置文件中")2.編寫鑒權文件testingedu_auth.py
用于獲取token值并存儲token值:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 用pip3命令安裝
import requests
from ruamel import yaml
def test_testingedu_auth():
url = "http://www.XXX.com.cn/XXX/HTTP//auth"
headers = {"Content-Type": "application/json"}
# 發(fā)送請求
response = requests.post(url=url, headers=headers)
print(response.text)
print(response.status_code)
print(response.json()["token"])
# return response.json()["token"]
# 把token值寫入配置文件中
# cur = os.path.dirname(os.path.realpath(__file__))
# p = os.path.join(cur, 'Token.yaml')
yamlpath = r'C:\Users\Administrator\PycharmProjects\APITest\common\Token.yaml'
tokenValue = {
'token': response.json()["token"],
}
with open(yamlpath, "w", encoding="utf-8") as f:
yaml.dump(tokenValue, f, Dumper=yaml.RoundTripDumper)
if __name__ == "__main__":
test_testingedu_auth()運行結果:

查看Token.yaml中的值:

3.編寫獲取token值的腳本:get_token.py
方便其他接口調(diào)用(登錄、查看和退出)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import yaml
import os
# cur = os.path.dirname(os.path.realpath(__file__))
def get_token(yamlName = "Token.yaml"):
# 從配置文件中讀取token值,并返回
p = os.path.join(r'C:\Users\Administrator\PycharmProjects\APITest\common\Token.yaml')
f = open(p)
a = f.read()
t = yaml.load(a)
f.close()
return t["token"]
if __name__ == "__main__":
get_token()4.編寫登錄接口腳本
testingedu_login.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
from common.get_token import get_token
def testingedu_login():
url = "http://www.XXX.com.cn/XXX/HTTP//login?username=XXX&password=XXX"
headers = {"token": get_token()}
response = requests.post(url=url, headers=headers)
print("返回體是:", response.text)
print("狀態(tài)碼是:", response.status_code)
if __name__ == "__main__":
testingedu_login()運行結果:

5.編寫查看接口腳本
testingedu_info.py
#!/usr/bin/env python
# -*- coding:utf-8 -*
import requests
from common.get_token import get_token
def testingedu_info():
url = "http://www.XXX.com.cn/XXX/HTTP//getUserInfo?id=XXX"
headers = {"token": get_token()}
response = requests.post(url=url, headers=headers)
print(response.text)
print(response.status_code)
if __name__ == "__main__":
testingedu_info()運行結果:

6.編寫退出接口腳本
testingedu_logout.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
from common.get_token import get_token
def testingedu_logout():
url = "http://www.XXX.com.cn/XXX/HTTP//logout"
headers = {"token": get_token()}
response = requests.post(url=url, headers=headers)
print(response.text)
print(response.status_code)
if __name__ == "__main__":
testingedu_logout()運行結果:

總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python統(tǒng)計列表中每個元素出現(xiàn)次數(shù)的4種實現(xiàn)
本文主要介紹了Python統(tǒng)計列表中每個元素出現(xiàn)次數(shù)的4種實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07
python借助ChatGPT讀取.env實現(xiàn)文件配置隔離保障私有數(shù)據(jù)安全
這篇文章主要為大家介紹了python讀取.env實現(xiàn)文件配置隔離保障私有數(shù)據(jù)安全,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
Python實現(xiàn)將doc轉(zhuǎn)化pdf格式文檔的方法
這篇文章主要介紹了Python實現(xiàn)將doc轉(zhuǎn)化pdf格式文檔的方法,結合實例形式分析了Python實現(xiàn)doc格式文件讀取及轉(zhuǎn)換pdf格式文件的操作技巧,以及php調(diào)用py文件的具體實現(xiàn)方法,需要的朋友可以參考下2018-01-01
Python使用當前時間、隨機數(shù)產(chǎn)生一個唯一數(shù)字的方法
這篇文章主要介紹了Python使用當前時間、隨機數(shù)產(chǎn)生一個唯一數(shù)字的方法,涉及Python時間與隨機數(shù)相關操作技巧,需要的朋友可以參考下2017-09-09
Python使用Holoviews創(chuàng)建復雜的可視化布局
Holoviews是一個基于Python的開源庫,旨在簡化數(shù)據(jù)可視化的創(chuàng)建過程,本文將為新手朋友詳細介紹如何使用Holoviews創(chuàng)建復雜的可視化布局,感興趣的可以了解下2024-11-11

