【Charles】使用Charles如何抓取移动端的https请求

怎么配置抓取请求?

首先,需要将 Charles 的代理功能打开:在 Charles 的菜单栏上选择 Proxy -> Proxy Settings,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。如下图所示:

还需要在SSL Proxying Settings里设置我们需要监听的app域名:

然后,我们需要获取 Charles 运行所在电脑的 IP 地址,Charles 的顶部菜单的 Help -> Local IP Address,即可在弹出的对话框中看到 IP 地址,如下图所示:


接着,将手机上的网络手动设置代理,服务器主机名就是上一步中获得的ip地址,端口号为第一步里的端口号。

设置好之后,我们打开手机上任意程序,就可以看到 Charles 弹出手机请求连接的确认菜单,点击 “Allow” 即可完成设置。

至此,便可以抓取移动端上的http请求。



如何抓取https请求呢?

首先,我们需要安装证书:点击 Charles 的顶部菜单,选择 Help  -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser。点击之后会出现如图所示弹窗:

接着,将移动端设置代理后,打开浏览器,输入上图红线标示的地址,直接访问,就可以在移动端下载证书了。下载安装证书之后,便可以抓取https请求了。

需要注意的是,在苹果机上下载证书之后,需要到 设置—>通用—>关于本机—>证书信任设置 里,打开对刚才所下载证书的信任才行。



有时候关闭charles之后,网页也打不开,怎么办?

需要我们手动关闭电脑的代理:


怎么只抓取移动端的请求而不抓取电脑的请求

打开Charles,Proxy—>windows proxy (如果是mac,则是 macOS proxy)去除勾选,即可满足只抓包手机端,不抓包电脑端数据

这样打开Charles抓包时,电脑端就可以正常上网了,手机端还能正常抓包


参考链接:http://blog.devtang.com/2015/11/14/charles-introduction、https://www.cnblogs.com/NuoyiHan/p/15711683.html


为什么有些请求抓不到?

可能是因为 recording setting里面限制了一些抓取的逻辑

include是指:只抓取以下规则的请求;exclude:不抓取以下规则的请求
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容