**app使用flutter重写后,发现使用fiddler无法抓包,只能抓到一些tls建立通道的信息。**
原因,引用网上的一段:
代理抓包的关键就是需要HTTP客户端按照要求去连接代理服务器,一般情况下我们已经在系统层面上设置了代理,通常http客户端都是按要求去实现的,在进行http请求前会先检查系统代理,如果有设置代理,客户端会直接使用完整uri去连接代理服务器。不同的平台通常会实现自己的的http客户端的,虽然他们都按照协议要求实现了代理功能,但是并不一定在默认情况下会直接使用系统代理。
在现实中这种况下这种情况还不少, 笔者当前项目使用到的Flutter就是这种情况,默认Flutter不会主动使用系统代理,需要单独设置。
原因知道了,两方面可以解决:
1:flutter客户端代码中修改代码以使用系统代理
略:相关代码自行搜索
2:测试人员手机中使用代理解决:这里选择是的drony工具(安卓)
详细步骤: 一、下载并安装到安卓手机上,https://files.cnblogs.com/files/lulianqi/Drony_102.apk 二、打开Drony,并右滑至SETTING标签页,选择Networks,点击当前在用的wifi名,进入Network details设置页 三、网络详情设置 1、点击Proxy type,选择manual(手动) 2、点击Hostname,输入当前电脑的局域网IP,比如192.168.1.123 3、点击Port,输入抓包软件的端口号,比如8888 4、点击Filter default value,选择Direct all 5、点击Rules,进入Rules详情页,点击右上角的加号,进入Add filter rule,action选择Local proxy chain,Application选择需要抓包的应用,然后保存,返回主页 四、左滑到LOG标签页,点击底部到OFF按钮,启用Drony,同时确保Drony进程在后台不会被杀掉
再次打开fiddler发现,有正常数据了

|