簡體   English   中英

Python請求超時無法正常工作

[英]Python requests timeout not working properly

我正在使用以下代碼來檢查平均響應時間,因為我發現它非常慢:

            t1 = time.time()
            response = requests.get(url, timeout=10, headers=headers)
            t2 = time.time()
            reqtimes += t2 - t1
            reqamount += 1
            print("Average response time:" + str(reqtimes/reqamount))

當我打印連接到大約1000個不同站點后的平均響應時間時,它告訴我平均響應時間是70秒。 為什么? 我的超時設置為10!

timeout是允許來自服務器*的任何響應的最長時間。 如果超時是10秒,並且服務器返回一個100字節的文件,每9秒一次一個字節,那么你永遠不會超時...但是你會等待很長時間才能完成響應(總經過時間為900秒)。 例如:即使是超時為10秒的單個請求,平均響應時間也為15分鍾。

值得注意的是,響應對象已經具有.elapsed屬性,該屬性為您提供了一個timedelta對象,您可以使用該對象來避免使用time.time()並自己執行計算。

*http://docs.python-requests.org/en/master/user/quickstart/#timeouts轉述

超時不是整個響應下載的時間限制; 相反,如果服務器沒有發出超時秒的響應(更准確地說,如果在底層套接字上沒有收到超時秒的字節),則會引發異常。 如果未明確指定超時,則請求不會超時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM