requests發請求時,接口的響應時間,也是我們需要關注的一個點,如果響應時間太長,也是不合理的。
如果服務端沒及時響應,也不能一直等着,可以設定一個timeout逾時的時間
關于requests請求的響應時間,官網上沒太多介紹,并且我百度搜了下,看很多資料寫的是r.elapsed.microseconds擷取的,然而都是錯的!!!
2.用help()檢視elapsed裡面的方法
elapsed裡面幾個方法介紹
total_seconds 總時長,機關秒
days 以天為機關
microseconds (>= 0 and less than 1 second) 擷取微秒部分,大于0小于1秒
seconds Number of seconds (>= 0 and less than 1 day) 秒,大于0小于1天
max = datetime.timedelta(999999999, 86399, 999999) 最大時間
min = datetime.timedelta(-999999999) 最小時間
resolution = datetime.timedelta(0, 0, 1) 最小時間機關
1.擷取elapsed不同的傳回值
2.網上很多資料寫的是用microseconds擷取響應時間,再除1000*1000得到時間為秒的機關,當請求小于1s時,發現不出什麼問題。如果時間超過1s,問題就來了。
(很顯然,大于1s的時候,隻截取了後面的小數部分)
3.是以擷取響應時間的正确姿勢應該是:r.elapsed.total_seconds(),機關是s
1.如果一個請求響應時間比較長,不能一直等着,可以設定一個逾時時間,讓它抛出異常
2.如下請求,設定逾時為0.5s,那麼就會抛出這個異常:requests.exceptions.ConnectTimeout: HTTPConnectionPool