目录

iOS技术之通过Charles抓包httphttps数据

iOS技术之通过Charles抓包http、https数据

前提

需要先安装 Charles

安装后的代理基本设置
  1. 调出端口设置页面                                                                                                                       菜单栏操作 Proxy->Proxy Settings…https://i-blog.csdnimg.cn/direct/2333e10d8f6844458291f215c4e0cbf8.png

2. 设置端口

     选中Proxies面板->HTTP Proxy 下的Port: 后填入 8888 -> 点击OK完成

https://i-blog.csdnimg.cn/direct/50e74dd96a6e4ec38160789b80460dfa.png

3.设置手机代理

和电脑连接相同网络, 点击代理; 选择手动,服务器内容填写电脑的ip, 端口:8888

https://i-blog.csdnimg.cn/direct/d5adb1924f754710b2e05910fa0f9a96.png

4.效果查看

    打开手机的浏览器,查看Charles是否捕获到了网络请求https://i-blog.csdnimg.cn/direct/db0810285a5e4190afecdee6e9e3ad45.png

当前只能抓取http的包内容, 是不能直接查看https请求内容的,因为请求本身是加密的。

抓取https请求的设置

  1. 手机安装证书

https://i-blog.csdnimg.cn/direct/050a44c88b80443e9769e4b82610c300.pnghttps://i-blog.csdnimg.cn/direct/a352f4421b10488fb2a4b89772613b6e.png手机浏览器输入框选的这个地址,
记得加协议头http://访问的, 直接下载描述文件到本地, 查看当前下载的描述文件:设置->通用->VPN与设备管理->Charles Proxy CA 点击安装; (如果有多个建议可以把之前的全删除, 在重新下载描述文件,防止有缓存)

2.Charles设置代理https

    菜单栏操作 Proxy->SSL Proxying Settings…

https://i-blog.csdnimg.cn/direct/879f3f4f7bd945fd8075a2d0af759bd4.png

https://i-blog.csdnimg.cn/direct/d0ec677518fd486199f7c9c9b73e4224.png

开启SSL代理->输入要抓取https接口的域名->OK

https://i-blog.csdnimg.cn/direct/fc6f91f8ca4347c0913226919e779d26.png

3. 效果查看

https://i-blog.csdnimg.cn/direct/11858ac2795e453eb815bd1df0fddbc1.png

备注: 如果抓取接口是https并且开启了证书校验,则抓包是不成功的, 需要使用代码在网络请求处把证书校验给关闭, 代码如下:

    // 是否允许无效证书, 默认为NO
    manager.securityPolicy.allowInvalidCertificates = YES;
    // 是否校验域名, 默认为YES
    manager.securityPolicy.validatesDomainName = NO;