UPDATE: https://requests.readthedocs.io/en/master/user/advanced/#timeouts
Dalam versi baru requests
:
Jika Anda menentukan nilai tunggal untuk batas waktu, seperti ini:
r = requests.get('https://github.com', timeout=5)
Nilai batas waktu akan diterapkan untuk batas waktu connect
dan read
batas waktu. Tentukan tuple jika Anda ingin mengatur nilai secara terpisah:
r = requests.get('https://github.com', timeout=(3.05, 27))
Jika server jarak jauh sangat lambat, Anda dapat memberi tahu Permintaan untuk menunggu selamanya untuk tanggapan, dengan melewatkan None sebagai nilai batas waktu dan kemudian mengambil secangkir kopi.
r = requests.get('https://github.com', timeout=None)
Jawaban lama saya (mungkin kedaluwarsa) (yang sudah diposting sebelumnya):
Ada cara lain untuk mengatasi masalah ini:
1. Gunakan TimeoutSauce
kelas internal
Dari: 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
Kode ini harus menyebabkan kami menetapkan batas waktu baca sama dengan batas waktu koneksi, yang merupakan nilai batas waktu yang Anda berikan pada panggilan Session.get () Anda. (Perhatikan bahwa saya belum benar-benar menguji kode ini, jadi mungkin perlu debugging cepat, saya hanya menulisnya langsung ke jendela GitHub.)
2. Gunakan garpu permintaan dari kevinburke: https://github.com/kevinburke/requests/tree/connect-timeout
Dari dokumentasinya: https://github.com/kevinburke/requests/blob/connect-timeout/docs/user/advanced.rst
Jika Anda menentukan nilai tunggal untuk batas waktu, seperti ini:
r = requests.get('https://github.com', timeout=5)
Nilai batas waktu akan diterapkan untuk sambungan dan batas waktu baca. Tentukan tuple jika Anda ingin mengatur nilai secara terpisah:
r = requests.get('https://github.com', timeout=(3.05, 27))
kevinburke telah memintanya untuk bergabung ke dalam proyek permintaan utama, tetapi belum diterima.