Thi*_*lol 5 python request python-3.x python-requests
我正在使用以下代码来检查平均响应时间,因为我注意到它非常慢:
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))
Run Code Online (Sandbox Code Playgroud)
当我在连接到大约 1000 个不同的站点后打印平均响应时间时,它告诉我平均响应时间为 70 秒。为什么?我的超时设置为 10 !
这timeout
是允许来自服务器的任何响应的最长时间*。如果超时是 10 秒,并且服务器返回一个 100 字节的文件,每 9 秒一次一个字节,那么您将永远不会超时......但是您将有很长时间等待响应完成(总经过时间将为 900 秒)。例如:即使是一个超时为 10 秒的请求,其平均响应时间也为 15 分钟)。
值得注意的是,响应对象已经有一个.elapsed
属性,它为您提供了一个timedelta
对象,您可以使用它来避免time.time()
自己使用和执行计算。
*转述自http://docs.python-requests.org/en/master/user/quickstart/#timeouts:
timeout 不是整个响应下载的时间限制;相反,如果服务器在 timeout 秒内没有发出响应(更准确地说,如果在 timeout 秒内没有在底层套接字上接收到字节),则会引发异常。如果未明确指定超时,则请求不会超时。
归档时间: |
|
查看次数: |
5325 次 |
最近记录: |