에게 python-requests docs 것이다 reveal exactly how to set max_retries
의 빠른 검색을 싶어요.
이 문서에서 직접 코드를 당겨하려면
import requests
s = requests.Session()
a = requests.adapters.HTTPAdapter(max_retries=3)
b = requests.adapters.HTTPAdapter(max_retries=3)
s.mount('http://', a)
s.mount('https://', b)
s.get(url)
은 당신이 찾고있는 무엇, 그러나, 여러 가지 이유로 구성 할 수 없습니다 없습니다 :
요청은 더 이상 제공 구성 수단
재시도 횟수는 th에만 해당됩니다. e 어댑터가 세션이나 특정 요청에 사용되는 것이 아닙니다.
하나의 요청에 하나의 특정 최대 요청 수가 필요한 경우 다른 요청에 충분해야합니다.
이 변경 사항은 1 년 전에 요청 1.0에 도입되었습니다. 가장 합리적인 이유 때문에 의도적으로 2.0으로 보관했습니다. 또한 요청할 경우를 대비하여 최대 재시도 횟수를 구성하는 매개 변수를 도입하지 않을 것입니다. 당신이 시도가 작동하는 방식을 훨씬 더 정밀한 제어를 달성 할 수있는 유사한 방법을 사용
편집. 좋은 느낌을 얻기 위해 this을 읽을 수 있습니다. 즉, urllib3
(아래 참조)에서 Retry
클래스를 가져 와서 작동 방법을 알려야합니다. 우리는 이것을 urllib3
에 전달하고 재시도를 다루기위한 더 나은 옵션 세트를 갖게됩니다.
from requests.packages.urllib3 import Retry
import requests
# Create a session
s = requests.Session()
# Define your retries for http and https urls
http_retries = Retry(...)
https_retries = Retry(...)
# Create adapters with the retry logic for each
http = requests.adapters.HTTPAdapter(max_retries=http_retries)
https = requests.adapters.HTTPAdapter(max_retries=https_retries)
# Replace the session's original adapters
s.mount('http://', http)
s.mount('https://', https)
# Start using the session
s.get(url)