当前位置: 首页 > backend >正文

获取 HTTP 请求从发送到接收响应所花费的总时间

response.elapsed.total_seconds() 是 Python requests 库中的一个方法,用于获取 HTTP 请求从发送到接收响应所花费的总时间(以秒为单位,浮点数形式)。以下是具体用法和示例:


基本用法

import requestsresponse = requests.get("https://www.example.com")
elapsed_time = response.elapsed.total_seconds()  # 获取请求耗时(秒)
print(f"请求耗时: {elapsed_time} 秒")

完整示例

1. 测量请求耗时并处理超时

import requestsurl = "https://www.example.com"
try:response = requests.get(url, timeout=5)  # 设置超时时间为5秒elapsed = response.elapsed.total_seconds()print(f"请求成功!状态码: {response.status_code}, 耗时: {elapsed:.3f} 秒")
except requests.exceptions.Timeout:print("请求超时!")
except requests.exceptions.RequestException as e:print(f"请求失败: {e}")

2. 比较多个请求的耗时

import requestsurls = ["https://www.google.com","https://www.github.com","https://www.python.org"
]for url in urls:try:response = requests.get(url)elapsed = response.elapsed.total_seconds()print(f"{url} 耗时: {elapsed:.2f} 秒")except Exception as e:print(f"{url} 请求出错: {e}")

3. 结合性能测试(计算平均耗时)

import requests
import statisticsurl = "https://www.example.com"
times = []for _ in range(5):  # 发送5次请求,计算平均耗时response = requests.get(url)times.append(response.elapsed.total_seconds())avg_time = statistics.mean(times)
print(f"平均耗时: {avg_time:.3f} 秒")

关键说明

  1. ​**response.elapsed**​ 是一个 datetime.timedelta 对象,total_seconds() 将其转换为秒。
  2. 适用场景​:性能监控、API响应时间分析、超时处理等。
  3. 注意事项​:
    • 如果请求失败(如超时或网络错误),response 对象可能不存在,需配合异常处理使用。
    • 时间不包括DNS解析、TCP连接等底层网络开销,仅测量从发送请求到接收第一个字节的时间。

输出示例

请求成功!状态码: 200, 耗时: 0.452 秒
https://www.google.com 耗时: 0.32 秒
https://www.github.com 耗时: 0.87 秒
平均耗时: 0.512 秒

通过这种方法,你可以方便地监控和优化请求性能。

 

http://www.xdnf.cn/news/10441.html

相关文章:

  • 什么是缺页中断(缺页中断详解)
  • 基于微信小程序的垃圾分类系统
  • 西瓜书第十章——聚类
  • 思科设备网络实验
  • 鸿蒙OSUniApp集成WebAssembly实现高性能计算:从入门到实践#三方框架 #Uniapp
  • 开发指南120-表格(el-table)斑马纹
  • 无法运用pytorch环境、改环境路径、隔离环境
  • Python编程基础(二)| 列表简介
  • 【Redis】笔记|第4节|Redis数据安全性分析
  • 数据类型与推断:TypeScript 的基础
  • wordpress免费主题网站
  • ASP.NET Core SignalR 身份认证集成指南(Identity + JWT)
  • Spring Boot,注解,@ConfigurationProperties
  • 手拆STL
  • 【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 时间事件处理部分)
  • Selenium的底层原理
  • 鸿蒙OSUniApp声纹识别与语音验证:打造安全可靠的跨平台语音应用#三方框架 #Uniapp
  • 第14讲、Odoo 18 实现一个Markdown Widget模块
  • 网络攻防技术一:绪论
  • 如何编写GitLab-CI配置文件
  • 【Linux】Linux文件系统详解
  • Linux 简单模拟实现C语言文件流
  • res.json() vs res.send() 的区别
  • 03.MySQL表的操作详解
  • nc 命令示例
  • MySQ-8.42 MGR 组复制部署及详解
  • 医疗数理范式化:从范式迁移到认知革命的深度解析
  • 微服务面试(分布式事务、注册中心、远程调用、服务保护)
  • 基于GeoTools和OSM路网求解两条道路相交点-以长沙市为例
  • CSS篇-6