答案
Whistle 提供了多种方式来捕获和查看网络请求,帮助开发者快速定位和解决问题。
请求捕获基础
1. 启动 whistle 并配置代理
启动 whistle:
bashw2 start
配置浏览器代理:
- 访问
http://127.0.0.1:8899/ - 点击 "Proxy" 标签
- 按照提示配置浏览器代理
2. 查看请求列表
在 whistle 管理界面:
- 点击 "Network" 标签
- 查看所有捕获的请求
- 默认按时间顺序排列
请求过滤和搜索
1. 按类型过滤
过滤 HTTP 请求:
- 点击 "All" 下拉菜单
- 选择 "XHR" 过滤 AJAX 请求
- 选择 "Doc" 过滤文档请求
- 选择 "CSS" 过滤样式表
- 选择 "JS" 过滤 JavaScript 文件
- 选择 "Img" 过滤图片
- 选择 "Media" 过滤媒体文件
- 选择 "WS" 过滤 WebSocket
2. 按域名过滤
在搜索框输入域名:
shellexample.com
或者使用通配符:
shell*.example.com
3. 按状态码过滤
过滤成功请求:
shellstatus:200
过滤错误请求:
shellstatus:4xx status:5xx
4. 按方法过滤
过滤 GET 请求:
shellmethod:GET
过滤 POST 请求:
shellmethod:POST
5. 按关键词搜索
搜索 URL 包含关键词的请求:
shellapi/user
搜索响应内容:
shellbody:success
请求详情查看
1. 查看请求头
点击请求后查看 "Headers" 标签:
- Request Headers:请求头信息
- Response Headers:响应头信息
- General:通用信息(URL、方法、状态码等)
2. 查看请求体
点击 "Payload" 标签:
- Query String Parameters:查询参数
- Form Data:表单数据
- Request Payload:请求体(JSON 等)
3. 查看响应体
点击 "Response" 标签:
- 查看完整的响应内容
- 支持格式化 JSON
- 支持查看 HTML
- 支持查看图片
4. 查看时间信息
点击 "Timing" 标签:
- DNS Lookup:DNS 查询时间
- TCP Connection:TCP 连接时间
- SSL Handshake:SSL 握手时间
- Request Sent:请求发送时间
- Waiting (TTFB):等待响应时间
- Content Download:内容下载时间
- Total:总时间
高级捕获功能
1. 捕获 HTTPS 请求
启用 HTTPS 拦截:
- 点击 "HTTPS" 标签
- 勾选 "Capture HTTPS"
- 下载并安装根证书
或者使用规则:
shellpattern whistle.https://
2. 捕获 WebSocket 请求
WebSocket 请求会自动显示在请求列表中:
- 标记为 "WS" 类型
- 显示连接状态
- 记录消息历史
3. 捕获移动端请求
配置手机代理:
- 手机和电脑连接同一 Wi-Fi
- 配置手机代理指向电脑 IP 和 whistle 端口
- 安装 HTTPS 证书
查看移动端请求:
- 请求会显示在同一个列表中
- 可以通过 User-Agent 识别设备
4. 捕获 Service Worker 请求
Service Worker 的请求也会被捕获:
- 显示请求来源
- 标记为 Service Worker 请求
- 可以查看缓存状态
请求导出和分析
1. 导出 HAR 文件
导出步骤:
- 点击 "Export" 按钮
- 选择 "Export HAR"
- 保存 HAR 文件
HAR 文件用途:
- 用于性能分析
- 用于问题排查
- 用于自动化测试
2. 导出为 CSV
导出步骤:
- 点击 "Export" 按钮
- 选择 "Export CSV"
- 保存 CSV 文件
CSV 文件用途:
- 数据分析
- 报表生成
- 数据导入
3. 导出为 JSON
导出步骤:
- 点击 "Export" 按钮
- 选择 "Export JSON"
- 保存 JSON 文件
JSON 文件用途:
- 自定义分析
- 数据处理
- 集成其他工具
请求修改和重放
1. 修改请求
修改请求头:
- 右键点击请求
- 选择 "Edit and Resend"
- 修改请求头
- 点击 "Send"
修改请求体:
- 右键点击请求
- 选择 "Edit and Resend"
- 修改请求体
- 点击 "Send"
2. 重放请求
快速重放:
- 右键点击请求
- 选择 "Replay"
- 请求会重新发送
批量重放:
- 选择多个请求
- 右键点击
- 选择 "Replay Selected"
请求监控和告警
1. 实时监控
启用实时监控:
- 请求会实时显示在列表中
- 自动滚动到最新请求
- 显示请求计数
2. 设置告警规则
创建告警规则:
shell# 状态码告警 status:5xx alert:Server Error # 响应时间告警 time:>3000 alert:Slow Request # 响应大小告警 size:>1MB alert:Large Response
3. 查看统计信息
统计面板:
- 总请求数
- 成功请求数
- 失败请求数
- 平均响应时间
- 总数据量
实用技巧
1. 使用快捷键
- Ctrl/Cmd + F:搜索请求
- Ctrl/Cmd + E:编辑并重发请求
- Ctrl/Cmd + R:重放请求
- Delete:删除选中请求
- Ctrl/Cmd + A:全选请求
2. 保存过滤条件
保存常用过滤条件:
- 设置过滤条件
- 点击 "Save Filter"
- 输入名称
- 保存
使用保存的过滤条件:
- 点击 "Saved Filters"
- 选择保存的过滤条件
3. 使用书签
添加书签:
- 右键点击请求
- 选择 "Add Bookmark"
- 输入名称
- 保存
查看书签:
- 点击 "Bookmarks" 标签
- 查看所有书签请求
4. 使用注释
添加注释:
- 右键点击请求
- 选择 "Add Comment"
- 输入注释
- 保存
查看注释:
- 注释会显示在请求列表中
- 鼠标悬停查看完整注释
最佳实践
-
定期清理请求列表
- 避免列表过长
- 提高查找效率
-
使用过滤条件快速定位
- 按类型、域名、状态码过滤
- 使用关键词搜索
-
保存重要请求
- 使用书签功能
- 添加注释说明
-
导出数据进行分析
- 导出 HAR 文件用于性能分析
- 导出 CSV/JSON 用于数据处理
-
使用快捷键提高效率
- 熟悉常用快捷键
- 提高操作速度