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ò)
問題描述
提示:
解決重連機(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-12
Python實(shí)現(xiàn)輸出程序執(zhí)行進(jìn)度百分比的方法
這篇文章主要介紹了Python實(shí)現(xiàn)輸出程序執(zhí)行進(jìn)度百分比的方法,涉及Python數(shù)值運(yùn)算與系統(tǒng)輸出相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
Python 旋轉(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-05
Python實(shí)現(xiàn)的HTTP并發(fā)測(cè)試完整示例
這篇文章主要介紹了Python實(shí)現(xiàn)的HTTP并發(fā)測(cè)試,涉及Python多線程并發(fā)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-05-05

