前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android中如何使用Charles和Android Studio进行网络抓包

Android中如何使用Charles和Android Studio进行网络抓包

作者头像
AntDream
发布2024-09-23 12:15:17
1600
发布2024-09-23 12:15:17
举报
文章被收录于专栏:程序员修炼之路

心里种花,人生才不会荒芜,如果你也想一起成长,请点个关注吧。

使用Charles抓包

日常开发过程中难免要进行抓包,查看服务端返回的数据是否正常,而Charles可谓是抓包利器了。下载安装地址:

https://www.charlesproxy.com/

原理浅析

配置好以后,Charles实际上让电脑成了一个中间代理服务器,我们手机上的所有请求都会经过电脑,被Charles拦截,然后Charles把自己伪装成手机向我们的远程服务器地址发送请求,所以Charles能记录我们发送的请求信息;

而等服务端响应请求时,实际上是响应了Charles的请求,Charles获得服务端的请求以后,又转发给我们的手机,所以Chaerles能获得服务端响应的详细信息。

使用Charles

普通http抓包

安装好Charles后启动,我们就能看到很多的请求信息了,因为Charles启动的时候默认是抓取Mac的所有网络请求的:

如果要关掉,可以在顶部菜单栏Proxy-->macProxy勾选去掉

那我们要抓手机应用的网络请求呢?

首先我们需要让手机的所有网络请求都经过装有Charles的Mac电脑,要达到这个效果只需要给手机的网络设置一个代理,代理IP就是Mac的IP,代理的端口就是Charles中设置的端口

贴心的是,Charles还提供了查询本机IP的工具:顶部菜单help-->Local IP Address,就能很方便地获取本机的IP地址

拿到电脑的IP地址以后,我们还需要知道代理的端口,Charles默认的端口是8888,这个也可以查看和设置。打开顶部菜单Proxy-->Proxy Setting

接下去就是设置手机的网络代理了,设置方式也很简单。

  • 打开手机当前连接的WI-FI详情页,可以找到一个代理的选项
  • 然后选择手动,就会出现主机名端口的选项,分别填入上面查到的IP地址和端口号保存即可
  • 这时电脑端的Charles就会弹出一个提示,大意是选择是否监听抓包之类的,选择Allow即可

记过以上简单几步,charles就能抓手机的包了。

Https抓包

现在很多网页链接都是Https的了,而上面的设置只能抓Http的请求。要想抓Https请求,我们还需要几步设置才行。

Https的一个特点是请求时会校验证书,而从文章开头我们简单介绍的charles的原理中我们也能大概知道,只需要在Http抓包的基础上增加一个Https的证书就可以实现Https抓包了。这个Https证书包括2个:

  • 一个是Charles本身需要配置一个Https证书,这样Charles才能和服务端正常的通信
  • 再一个就是手机端的Https证书了,这样手机才能和Charles正常通信
  • 实际上,相当于Charles从普通的Http代理服务器变成了Https服务器
(1)Charles安装Https证书

首先打开顶部Charles菜单:Help-->SSL Proxying,可以看到有很多选项

  • 选择Install Charles Root Certificate,也就是安装Charles的根证书
  • 在打开的钥匙串里面,选择Charles Proxy CA,双击打开,选择始终信任即可
(2)手机安装Https证书

还是上面的同一个菜单入口,这次就要根据手机不同选择不同了

选择对应手机型号以后,就会出现一个提示框,里面有下载证书的地址http://chls.pro/ssl,手机上打开对应的链接即可下载安装

(3)Charles设置

手机安装好证书以后,打开Charles的菜单:Proxy-->SSL Proxying Settings

经过以上几步,Charles就可以进行Https抓包啦!

其他

使用完Charles以后,手机上记得把代理去掉,不然手机就没办法上网了哦

使用Android Studio进行抓包

主要的工具

Android Studio提供的Android Profile工具

我们借助Android Studio提供的Android Profile工具就可以满足大部分的抓包请求

抓包的流程

抓包的流程也很简单,相比Charles可谓简单到爆。直接上官网的步骤:

  1. 点击 View > Tool Windows > Android Profiler(也可以点击工具栏中的 Android Profiler)打开Android Profiler
  1. 从 Android Profiler 工具栏中选择您想要分析的设备和应用进程。如果您通过 USB 连接了某个设备但该设备未在设备列表中列出,请确保您已启用 USB 调试。
  2. 点击 **NETWORK **时间线中的任意位置即可打开 Network Profiler。

最后上一张官网的效果图

总结

可见,用Android Studio抓包非常方便,而且步骤也很简单,不需要任何证书之类的;不用像Charles那样需要很多配置步骤,抓Https还需要证书

但是也需要注意的是这种方式目前只支持 HttpURLConnection 和 OkHttp 网络连接库,也就是只能抓取通过这2个库请求的网络连接。

最后附上官网地址(需要魔法):https://developer.android.com/r/studio-ui/network-profiler-troubleshoot-connections.html

END

点赞转发,让精彩不停歇!关注我们,评论区见,一起期待下期的深度好文!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AntDream 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用Charles抓包
  • 原理浅析
  • 使用Charles
    • 普通http抓包
      • Https抓包
        • (1)Charles安装Https证书
        • (2)手机安装Https证书
        • (3)Charles设置
      • 其他
      • 使用Android Studio进行抓包
        • 主要的工具
          • 抓包的流程
            • 总结
            相关产品与服务
            云服务器
            云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档