GÜNCELLEME: https://requests.readthedocs.io/en/master/user/advanced/#timeouts
Yeni sürümünde requests
:
Zaman aşımı için tek bir değer belirtirseniz, şöyle:
r = requests.get('https://github.com', timeout=5)
Zaman aşımı değeri hem zaman aşımlarına hem connect
de read
zaman aşımlarına uygulanacaktır. Değerleri ayrı ayrı ayarlamak istiyorsanız bir demet belirtin:
r = requests.get('https://github.com', timeout=(3.05, 27))
Uzak sunucu çok yavaşsa, Hiçbir zaman aşımı değeri olarak Hiçbiri'ni geçip bir fincan kahve alarak İsteklere sonsuza kadar yanıt vermesini söyleyebilirsiniz.
r = requests.get('https://github.com', timeout=None)
Eski (muhtemelen eski) cevabım (uzun zaman önce gönderildi):
Bu sorunun üstesinden gelmenin başka yolları da vardır:
1. TimeoutSauce
Dahili sınıfı kullanın
Gönderen: 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
Bu kod, okuma zaman aşımını Session.get () çağrınızda geçirdiğiniz zaman aşımı değeri olan bağlantı zaman aşımına eşit olarak ayarlamamıza neden olmalıdır. (Bu kodu gerçekten test etmedim, bu yüzden bazı hızlı hata ayıklama gerektirebilir, sadece doğrudan GitHub penceresine yazdım.)
2. Kevinburke'un istek çatalını kullanın: https://github.com/kevinburke/requests/tree/connect-timeout
Belgelerinden: https://github.com/kevinburke/requests/blob/connect-timeout/docs/user/advanced.rst
Zaman aşımı için tek bir değer belirtirseniz, şöyle:
r = requests.get('https://github.com', timeout=5)
Zaman aşımı değeri hem bağlantıya hem de okuma zaman aşımlarına uygulanır. Değerleri ayrı ayrı ayarlamak istiyorsanız bir demet belirtin:
r = requests.get('https://github.com', timeout=(3.05, 27))
kevinburke ana istekler projesinde birleştirilmesini istedi , ancak henüz kabul edilmedi.