Python中的Request請(qǐng)求重試機(jī)制
Python請(qǐng)求重連
很多時(shí)候因?yàn)榫W(wǎng)絡(luò)錯(cuò)誤,或者請(qǐng)求阻塞導(dǎo)致我們一次請(qǐng)求沒有生效,那么有個(gè)錯(cuò)誤重試機(jī)制的話方便我們?nèi)蒎e(cuò)
問(wèn)題描述
提示:
解決重連機(jī)制的話,一般我們先把請(qǐng)求做一次封裝
所有的reques都通過(guò)我們的Request基類去請(qǐng)求
這樣方面我們統(tǒng)一處理
put_request是我封裝的一個(gè)put統(tǒng)一請(qǐng)求方法:
def put_request(url,data): i=0 while i<3: try: res=r.put(url=url,data=data,verify=False,timeout=3.07) if check_res(res): i+=1 else: return res except Exception as e: log.debug(str(e)) i+=1 res='error' return res
優(yōu)化
提示:
后來(lái)發(fā)現(xiàn)Request有自己的重試機(jī)制,Transport Adapters,
https://requests.readthedocs.io/en/latest/user/advanced/#transport-adapters
import requests from requests.adapters import HTTPAdapter r = requests.Session() #將適配器掛載到session上面 r.mount('http://', HTTPAdapter(max_retries=3)) r.mount('https://', HTTPAdapter(max_retries=3))
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python PyYAML庫(kù)解析YAML文件使用詳解
這篇文章主要為大家介紹了Python PyYAML庫(kù)解析YAML文件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11使用BeeWare實(shí)現(xiàn)iOS調(diào)用Python方式
這篇文章主要介紹了使用BeeWare實(shí)現(xiàn)iOS調(diào)用Python方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Python實(shí)現(xiàn)輸出程序執(zhí)行進(jìn)度百分比的方法
這篇文章主要介紹了Python實(shí)現(xiàn)輸出程序執(zhí)行進(jìn)度百分比的方法,涉及Python數(shù)值運(yùn)算與系統(tǒng)輸出相關(guān)操作技巧,需要的朋友可以參考下2017-09-09Python 旋轉(zhuǎn)立方體的實(shí)現(xiàn)示例
本文主要介紹了Python 旋轉(zhuǎn)立方體的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05Python實(shí)現(xiàn)的HTTP并發(fā)測(cè)試完整示例
這篇文章主要介紹了Python實(shí)現(xiàn)的HTTP并發(fā)測(cè)試,涉及Python多線程并發(fā)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-05-05