程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【Bug】python requests發起請求,報“Max retries exceeded with url”

編輯:Python

在本地機器上,高頻率重復調用一個API接口,出現“Max retries exceeded with url”,拒絕連接的情況。

樓主講一下,遇到這個bug的過程:

在服務器上開發了一個識別圖像文字API接口,也部署好了,准備對接口進行測試,

樓主准備對本地文件夾中的2000多張圖片進行測試,也就是說需要重復調用API接口2000多次。

請求接口50多次的時候,接口就不反饋信息了,報錯,連接錯誤,無法連接,一開始以為是網絡的問題,然後又重頭開始調用直到調了300多次,報錯,連接錯誤,無法連接,一直這麼下去大概搞了七八次。。。

於是就開啟了“百度一下”,網上也提供了很多教程,例如:

  • 在使用requests多次訪問同一個ip時,尤其是在高頻率訪問下,http連接太多沒有關閉導致的Max retries exceeded with url 的錯誤
res = requests.post(url, headers=headers, json=parm, cookies=cookies)
# 請求完成後,關閉連接(若對同一個request高頻率發起時,可能會出現Max retries exceeded with url)
res.close()
# 經過觀察發現,使用後關閉res.close(),可以解決Max retries exceeded with url 的錯誤

https://www.cnblogs.com/cuitang/p/15407448.html

  • http連接太多沒有關閉導致的

解決辦法:

s=requests.session()
s.keep_alive=False
s.post(url)

https://laidefa.blog.csdn.net/article/details/102740747

# 增加重連接次數:
requests.DEFAULT_RETRIES = 5
s=requests.session()
# 關閉多余連接
s.keep_alive=False

https://blog.csdn.net/llllllkkkkkooooo/article/details/107637980

  • headers裡面添加字段Connection,值為close
headers = {
'Connection':'close'}

https://www.jianshu.com/p/afe366963379

以上方案樓主都進行了嘗試,沒有解決我的問題。。。【主要還是藥不對,藥不對症,哈哈】

不過樓主並沒有因此放棄解決該問題,繼續查找資料!

最終找到了適合自己的“藥”,分享如下:

也就是,安裝這個包就好了:pip install pyopenssl 或 pip install -U pyopenssl

https://www.jianshu.com/p/5a57ad129e4b


以上內容僅作為個人記錄參考,非標准答案

https://blog.csdn.net/weixin_45520735/article/details/115260374


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved