【Android】Proxyman 抓 HTTP 数据包

前言

抓包(Packet Capture)是指在网络通信中截取、分析数据包的过程。

抓包通常用于网络调试、性能优化、安全分析等工作,可以帮助开发者或运维人员查看网络请求的详细内容,包括请求的URL、请求头、响应状态、数据内容等信息。

在抓包过程中,抓包工具会监听网络接口,将传输的数据包截取下来并以可读的方式展示出来。

抓包工具可以分析多种协议的数据包,如 HTTP、HTTPS、TCP、UDP 等,帮助我们深入了解网络通信的细节。

抓包

HTTP

Proxyman 是一款高性能的抓包应用程序,使开发人员能够查看来自应用程序和域的 HTTP/HTTPS 请求,包括 iOS 设备、iOS 模拟器Android 设备。

前期准备

  1. 下载 Proxyman

    点击下载 👉 Proxyman

  2. 安装完成后打开 Proxyman ,根据指引安装证书到本地电脑

  3. 找一台 Root 过的 Android 设备,让设备网络与电脑网络处于同一局域网,并能使用电脑 pingAndroid 设备的 IP 地址。

  4. 进入 Android 设备的网络设置,为 以太网WIFI 配置代理信息。配置的代理信息如下:

    Server:192.1.68.1.5

    Port:9090

    Authentication:No

    配置代理需要确保 Android 设备上的 VPN 被关闭,以免代理冲突。

  5. Android 设备上打开浏览器,访问 http://proxy.man/ssl 网址下载 CA 证书。

  6. 打开设置,根据 安全 → 加密与凭证 → 安装证书 → CA 证书 的操作步骤安装刚刚下载的 CA 证书。

  7. 如果你的 Android 系统版本高于 10 ,需要在你的 Android 项目上配置信任 CA 证书,即在 res/xml/network_security_config.xml 加上如下配置:

    xml 复制代码
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
    	<debug-overrides>
            <trust-anchors>
                <!-- Trust user added CAs while debuggable only -->
                <!-- 信任用户添加的CA证书 -->
                <certificates src="user" />
                <!-- 信任系统预装的CA证书 -->
                <certificates src="system" />
            </trust-anchors>
        </debug-overrides>
    
        <!-- 允许明文流量(即HTTP请求)-->
        <base-config cleartextTrafficPermitted="true">
            <!-- 配置指定信任的证书来源。-->
            <trust-anchors>
                <!-- 表示信任系统预装的CA证书和用户添加的CA证书 -->
                <certificates src="system" />
                <!-- 信任系统预装的CA证书和用户添加的CA证书 -->
                <certificates src="user" />
            </trust-anchors>
        </base-config>
    </network-security-config>

    将配置文件的引用添加到 AndroidManifest.xml

    xml 复制代码
    <manifest xmlns:android="http://schemas.android.com/apk/res/android">
    	<application
    		android:networkSecurityConfig="@xml/network_security_config">
    	</application>
    </manifest>
  8. 打开APP

    具体详情可参考 👉 Android Device & Emulator

注意事项:

1、http 的网络请求在任何的 Android 版本上都可以进行抓包,https 的网络请求在Android 10及以上的Android 版本抓包,必须需要在 Android 项目加上一些配置才能抓包。

2、Android 10 及以上的 Android 版本需要在 Android 系统上配置 CA 证书。

3、使用抓包工具进行抓包的电脑要求要和 Android 端的网络处于同一局域网,且使用电脑能够 ping 通。

相关推荐
caimouse1 天前
TDI (传输驱动接口 Transport Driver Interface) 详细分析
网络协议
YB13751 天前
jetpack compose 副作用 SideEffect
android·kotlin
CHB1 天前
uni-app x 蒸汽模式 性能测试基准报告 Benchmark【Android版】
android·ios·uni-app
shengnan_wsn1 天前
【协议】【TCP】
网络·网络协议·tcp/ip
带娃的IT创业者1 天前
拆掉那堵墙:LibrePods 如何让 AirPods 在 Android 上重获新生
android·开源项目·airpods·librepods·生态解锁
消失的旧时光-19431 天前
第 3 篇:机器人 TCP 长连接如何稳定运行?心跳、掉线检测与自动重连
网络协议·tcp/ip·机器人
_阿南_1 天前
flutter 展示的字体突然奔放了
android·flutter·ios
不弃君1 天前
在 Windows 上用 MinGW 搭建 lwIP 调试环境:方法与踩坑实录
windows·网络协议·tcp/ip·嵌入式·mingw·lwip
NeilYuen1 天前
实现TCP发送HTTP请求
网络协议·tcp/ip·http
文人sec1 天前
MySQL事务与索引做了什么?
android·笔记·mysql