You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio模拟器中APK网络请求绕过代理问题排查(2023.2.1)

问题分析与解决办法

以下是导致你遇到的APP请求无法被Postman Interceptor捕获的常见原因及对应解决方案:

1. 模拟器代理配置错误(核心原因)

Android Studio的HTTP Proxy设置仅作用于IDE自身,不会自动同步到模拟器系统。而且模拟器里的127.0.0.1指向模拟器自身,不是你的主机电脑,所以你设置的代理地址对APP无效。

解决步骤:

  • 打开模拟器的「设置」→「网络和互联网」→「WLAN」。
  • 长按当前连接的网络(通常是AndroidWifi),选择「修改网络」。
  • 勾选「显示高级选项」,代理设置选「手动」,代理主机名填10.0.2.2(Android模拟器专门用来指向主机localhost的特殊IP),代理端口填5559,保存设置。

2. HTTPS请求的证书信任问题

Postman Interceptor需要通过中间人证书来捕获HTTPS请求,但Android 7.0+默认只信任系统预装的证书,不信任用户安装的证书。如果APP的HTTPS请求不允许使用用户证书,就会绕过代理。

解决步骤:

  • 导出Postman Interceptor的证书:打开Postman→右上角Interceptor图标→「Certificate」选项卡→点击「Download Certificate」保存为.pem或.crt文件。
  • 将证书推送到模拟器的系统证书目录:
    1. 打开命令行,进入Android SDK的platform-tools目录(比如cd C:\Users\你的用户名\AppData\Local\Android\Sdk\platform-tools)。
    2. 执行命令 adb root 获取模拟器root权限,再执行 adb remount 挂载系统分区为可写。
    3. 执行 adb push 你的证书路径 /system/etc/security/cacerts/。
    4. 执行 adb shell chmod 644 /system/etc/security/cacerts/你的证书文件名,确保权限正确。
  • 重启模拟器,之后APP的HTTPS请求应该能被捕获。

3. APP自身的代理绕过机制

部分APP会在代码中硬编码网络请求配置,比如使用OkHttp时设置Proxy.NO_PROXY,或者检测代理并直接绕过,甚至使用HTTP/3、QUIC等Postman Interceptor不支持的协议。

解决办法:

  • 换用更专业的抓包工具(如Charles、Fiddler),它们对HTTP/3、QUIC的支持更好,也能更灵活处理代理绕过的情况。
  • 如果是你自己开发的APP,可以检查代码中的网络客户端配置,移除代理禁用逻辑;如果是第三方APP,可能需要使用Xposed框架等工具来hook网络请求,强制走代理。

4. Android网络安全配置限制

第三方APP通常会配置network_security_config.xml,限制只信任系统证书、禁止明文流量,或者指定仅信任特定CA证书,这会导致代理证书无法被识别,请求直接绕过代理。

解决办法:

  • 如果你能获取APP的源码,修改network_security_config.xml,添加<trust-anchors><certificates src="user" /></trust-anchors>来信任用户安装的证书,然后重新签名安装。
  • 对于第三方APP,可以使用APKTool反编译,修改配置后重新签名安装(注意可能违反APP的使用协议)。

内容的提问来源于stack exchange,提问作者jeancallisti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 14:55:15