如何用python腳本實(shí)現(xiàn)一次獲取token,多次使用token
1.兩種格式的文件
1)編寫配置文件Token.yaml(暫時(shí)為空),用來(lái)存放token值
另外:
用命令:pip3 install ruamel.yaml安裝ruamel.yaml模塊,用以去除yaml文件中的大括號(hào)
2)編寫配置文件access_token.yml,把token值寫到配置文件中的關(guān)鍵代碼如下:
# 把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.編寫鑒權(quán)文件testingedu_auth.py
用于獲取token值并存儲(chǔ)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ā)送請(qǐng)求 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()
運(yùn)行結(jié)果:
查看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()
運(yùn)行結(jié)果:
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()
運(yùn)行結(jié)果:
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()
運(yùn)行結(jié)果:
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python統(tǒng)計(jì)列表中每個(gè)元素出現(xiàn)次數(shù)的4種實(shí)現(xiàn)
本文主要介紹了Python統(tǒng)計(jì)列表中每個(gè)元素出現(xiàn)次數(shù)的4種實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07python借助ChatGPT讀取.env實(shí)現(xiàn)文件配置隔離保障私有數(shù)據(jù)安全
這篇文章主要為大家介紹了python讀取.env實(shí)現(xiàn)文件配置隔離保障私有數(shù)據(jù)安全,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Python實(shí)現(xiàn)將doc轉(zhuǎn)化pdf格式文檔的方法
這篇文章主要介紹了Python實(shí)現(xiàn)將doc轉(zhuǎn)化pdf格式文檔的方法,結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)doc格式文件讀取及轉(zhuǎn)換pdf格式文件的操作技巧,以及php調(diào)用py文件的具體實(shí)現(xiàn)方法,需要的朋友可以參考下2018-01-01Python使用當(dāng)前時(shí)間、隨機(jī)數(shù)產(chǎn)生一個(gè)唯一數(shù)字的方法
這篇文章主要介紹了Python使用當(dāng)前時(shí)間、隨機(jī)數(shù)產(chǎn)生一個(gè)唯一數(shù)字的方法,涉及Python時(shí)間與隨機(jī)數(shù)相關(guān)操作技巧,需要的朋友可以參考下2017-09-09Jetson?NX?配置?pytorch的問(wèn)題及解決方法
這篇文章主要介紹了Jetson?NX?配置?pytorch的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03Pycharm同步遠(yuǎn)程服務(wù)器調(diào)試的方法步驟
這篇文章主要介紹了Pycharm同步遠(yuǎn)程服務(wù)器調(diào)試,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Python使用Holoviews創(chuàng)建復(fù)雜的可視化布局
Holoviews是一個(gè)基于Python的開源庫(kù),旨在簡(jiǎn)化數(shù)據(jù)可視化的創(chuàng)建過(guò)程,本文將為新手朋友詳細(xì)介紹如何使用Holoviews創(chuàng)建復(fù)雜的可視化布局,感興趣的可以了解下2024-11-11