업데이트 : https://requests.readthedocs.io/en/master/user/advanced/#timeouts
새 버전에서 requests
:
다음과 같이 시간 초과에 단일 값을 지정하면
r = requests.get('https://github.com', timeout=5)
타임 아웃 값은 connect
및 read
타임 아웃 모두에 적용됩니다 . 값을 별도로 설정하려면 튜플을 지정하십시오.
r = requests.get('https://github.com', timeout=(3.05, 27))
원격 서버가 매우 느린 경우 시간 제한 값으로 없음을 전달한 다음 커피 한 잔을 검색하여 요청에 응답을 영원히 기다리도록 요청할 수 있습니다.
r = requests.get('https://github.com', timeout=None)
오래된 (아마 구식) 답변 (오래 전에 게시 됨) :
이 문제를 극복하는 다른 방법이 있습니다.
1. TimeoutSauce
내부 클래스를 사용하십시오
보낸 사람 : https://github.com/kennethreitz/requests/issues/1928#issuecomment-35811896
import requests from requests.adapters import TimeoutSauce
class MyTimeout(TimeoutSauce):
def __init__(self, *args, **kwargs):
connect = kwargs.get('connect', 5)
read = kwargs.get('read', connect)
super(MyTimeout, self).__init__(connect=connect, read=read)
requests.adapters.TimeoutSauce = MyTimeout
이 코드로 인해 읽기 시간 초과가 연결 시간 초과와 동일하게 설정됩니다. 이는 세션 .get () 호출에 전달하는 시간 초과 값입니다. (실제로이 코드를 테스트하지 않았으므로 빠른 디버깅이 필요할 수 있습니다. GitHub 창에 직접 작성했습니다.)
2. kevinburke의 요청 포크를 사용하십시오. https://github.com/kevinburke/requests/tree/connect-timeout
설명서에서 : https://github.com/kevinburke/requests/blob/connect-timeout/docs/user/advanced.rst
다음과 같이 시간 초과에 단일 값을 지정하면
r = requests.get('https://github.com', timeout=5)
제한 시간 값은 연결 및 읽기 제한 시간 모두에 적용됩니다. 값을 별도로 설정하려면 튜플을 지정하십시오.
r = requests.get('https://github.com', timeout=(3.05, 27))
kevinburke가이 요청 을 기본 요청 프로젝트에 병합하도록 요청했지만 아직 승인되지 않았습니다.