Android 11设备用Fiddler Classic无法捕获旧版Cordova APP HTTP流量求助
解决Android 11下Fiddler无法捕获旧版Cordova应用流量的问题
核心原因
Android 11对应用网络安全的限制远严于Android 7,旧版Cordova应用未适配新规则,导致无法信任Fiddler的用户CA证书,或默认绕过系统代理。
1. 添加应用网络安全配置
Android 11默认仅信任系统预装CA证书,需修改应用配置让其信任用户安装的Fiddler证书,同时允许明文流量(若应用使用HTTP协议):
- 在项目
res/xml目录下创建/修改network_security_config.xml,内容如下:
<network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system"/> <certificates src="user"/> </trust-anchors> </base-config> </network-security-config>
- 在
AndroidManifest.xml的<application>标签中添加配置引用:
<application ... android:networkSecurityConfig="@xml/network_security_config">
2. 强制WebView继承系统代理
旧版Cordova的WebView可能未默认使用系统代理,需修改MainActivity.java中的WebView配置:
import android.webkit.WebSettings; import android.webkit.WebView; public class MainActivity extends CordovaActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); loadUrl(launchUrl); WebView webView = (WebView) appView.getEngine().getView(); WebSettings settings = webView.getSettings(); // 启用系统代理支持 settings.setAllowFileAccess(true); settings.setAllowContentAccess(true); settings.setUseWideViewPort(true); settings.setLoadWithOverviewMode(true); // 保留应用原有必要配置,比如JS支持 settings.setJavaScriptEnabled(true); } }
3. 正确安装Fiddler证书
- 在Android 11设备上,通过浏览器访问
http://[Fiddler所在电脑IP]:8888,下载并安装Fiddler证书。 - 安装时选择「VPN和应用」用途(部分设备需手动指定,确保证书被应用识别)。
4. 检查Fiddler与设备连接设置
- 打开Fiddler,进入
Tools > Options > Connections,勾选Allow remote computers to connect后重启Fiddler。 - 确保电脑防火墙允许8888端口的入站连接,设备与电脑处于同一局域网。
5. 排查硬编码代理绕过
检查应用代码中是否存在硬编码的Proxy.NO_PROXY或自定义代理设置,如有则修改为使用系统代理。
内容的提问来源于stack exchange,提问作者Sneakol90
相关产品推荐
相关产品推荐

