接口测试 手机通过 fiddler 抓包,有些请求为什么就得不到返回数据了

chopper · 2020年09月11日 · 最后由 chopper 回复于 2020年09月11日 · 699 次阅读

前提:手机单独连接路由,app 可以正常使用
手机和电脑连接在同一个路由器上,手机通过 fiddler 抓包,各项配置都正确,证书也安装了,
但是为什么手机 app 上的有些请求直接就得不到回复了,一些功能直接提示加载失败。
经过 fiddler 中转一下就不行了吗,是我电脑的问题还是 fiddler 配置的问题。
请教大神帮助。

最佳回复
chopper 回复

对的,可以尝试修改下

rules->customize rule 里修改 OnBeforeResponse,
添加
if(oSession.oRequest['User- Agent'].IndexOf('ios')>-1&&oSession.HTTPMethodIs('connect'))
{
oSession.oResponse.headers['Connection']='Keep-Alive';
}

共收到 7 条回复 时间 点赞

fiddler 注意点

  • fiddler 抓包在没有修改项目代码的前提下,Android7.0 以下和 ios 任意版本都可以抓包
  • ios 版本在安装完证书之后,要开启信任证书设置
  • 如果在以上都不满足的前提下,建议检查下 fiddler 的证书是否正常,可以尝试重新导出新证书
  • 通常 fiddler 抓包,是抓去 http 和 https 等这些应用层的协议,tcp/udp 这些可以用 wireshark 抓包
虫仔 回复

在测试公司的 app,用 fiddler 后,有的页面可以正常加载,但有的页面和数据就提示加载失败

也许是 http2 的原因...目前很多工具都不支持 Http2

chopper 回复

查看没有捕获到的接口,找看法问一下是用了什么协议,是不是有类似 websocket 之类的,这类没法捕获到的接口
报错问题,可能和协议有关

虫仔 回复

好多数据抓取到的 method 都是 connect,是因为这个引起的吗

chopper 回复

对的,可以尝试修改下

rules->customize rule 里修改 OnBeforeResponse,
添加
if(oSession.oRequest['User- Agent'].IndexOf('ios')>-1&&oSession.HTTPMethodIs('connect'))
{
oSession.oResponse.headers['Connection']='Keep-Alive';
}

虫仔 回复

还是不行。fiddler 对于 method 是 connect 的,不仅抓不到包,还会导致 app 那边的请求也不能正常得到应答数据了吗。现在不要求 fiddler 能抓取到 connect 的数据,只要 app 能正常响应就行

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册