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

获取 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 秒

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

 

相关文章:

  • GpuGeek如何成为AI基础设施市场的中坚力量
  • uni-app学习笔记二十一--pages.json中tabBar设置底部菜单项和图标
  • 组件化:软件工程化的基础
  • 工作流引擎-11-开源 BPM 项目 jbpm
  • Spring Boot对一些技术框架进行了统一版本号管理
  • 【AI面试秘籍】| 第25期:RAG的关键痛点及解决方案深度解析
  • 「数据采集与网络爬虫(使用Python工具)」【数据分析全栈攻略:爬虫+处理+可视化+报告】
  • 【前端】Vue中使用CKeditor作为富文本编辑器
  • [网页五子棋][对战模块]处理连接成功,通知玩家就绪,逻辑问题(线程安全,先手判定错误)
  • [Windows]在Win上安装bash和zsh - 一个脚本搞定
  • openssl 怎么生成吊销列表
  • Docker容器创建Redis主从集群
  • 如何排查Redis单个Key命中率骤降?
  • 【Linux系统编程】Ext系列文件系统
  • Ansible 剧本精粹 - 编写你的第一个 Playbook
  • 告别手动绘图!基于AI的Smart Mermaid自动可视化图表工具搭建与使用指南
  • Vue拖拽组件:vue-draggable-plus
  • 如何设计一个支持线上线下的通用订单模块 —— 面向本地生活服务行业的架构思路
  • Portainer安装指南:多节点监控的docker管理面板-家庭云计算专家
  • docker 部署 gin
  • 西安市政府网站/百度搜索广告怎么投放
  • 大航母网站建设与服务/网络软文营销案例
  • 青岛做企业网站的公司/定制网站+域名+企业邮箱
  • 提供常州网站优化/网络营销活动方案
  • wordpress主题安装全解析/seo搜索排名优化
  • 企业网站服务器建设/百度网址大全