目录
目录
1.mac下安装charles
- 下载安装charles
- 打开charles,点击菜单栏的“Help”选择“Register Charles”,弹出Charles for Mac的注册界面
- 到解压后的“Charles428”应用文件夹,打开其中的“keygen.jar”,输入“orsoon”然后点击“Generate”生成Charles注册码
- 将“orsoon”和生产的注册码复制到注册界面的对应位置上进行注册
2.使用charles抓包
2.1 配置
- 安装证书:Help>SSL Proxying> Insatll Charles Root Certificate, 选择始终信任
- 搜索 charles 可以看到刚才安装的证书,查看证书状态是否已经被信任
2.2 抓mac上的请求
对于Mac系统而言,打开charles之后,默认就已经对系统进行了代理,如果没有,则需要在菜单栏的Proxy上勾选上Mac OS X Proxy。
2.3 抓移动设备上的请求
- 保证移动端与电脑设备在同一网段
- 设置http代理,选择charles菜单栏中的Proxy>Proxy Settings,将端口号改为8888(或其他未被占用的端口),并设置可用
- 查看mac的ip地址:设置>网络>高级>查看ipv4/charles help>local ip address
- 移动端,进入连接网络的设置界面,代理方式改为手动,将host和端口号改为与mac一致
- 移动端下载、安装、信任安全证书。在浏览器中输入 chls.pro/ssl,下载证书,在设置-->更多设置-->系统安全-->加密与凭据-->从存储设备安装,找到下载的证书,安装信任。(设置-->设备与隐私-->从存储设备安装证书)
- 若下载证书后缀为pem,需手动修改后缀为crt,方可下载
- 此时charles会弹出窗口,选中同意,即可抓取到请求啦
3. 使用charles模拟弱网环境
参数说明:
- bandwidth —— 带宽,即上行、下行数据传输速度
- utilisation —— 带宽可用率,大部分modern是100%
- round-trip latency —— 第一个请求的时延,单位是ms。
- MTU —— 最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况。
- Releability —— 指连接的可靠性。这里指的是10kb的可靠率。用于模拟网络不稳定。
- Stability —— 连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠。
4.通过抓包修改接口返回值-mock
1、选中要修改的请求,右键点击breakpoints
2、编辑断点过滤条件
例如每次查询时,接口传参中的id不是固定的值,会变化,则在proxy-->breakpoint setting中修改匹配条件,例如改成*
3、再次在app端执行操作,当触发打过断点的接口时,charles就会将其捕获住,此时可点击“Edit Request”按需编辑请求参数、返回参数
5.问题记录
5.1 抓https请求乱码
在菜单栏选择Proxy>SSL Proxying Settings,点击add,Host填“*”,Port填“443”,点击OK,重新抓包,不再乱码。
5.2 抓到的请求显示unknown
在移动端安装并信任证书即可。(步骤可参考2.3)
若移动端安装证书无反应,可考虑设置锁屏密码,重试。
若安装完证书,仍然报错unknown,需要信任该证书:设置->通用->关于本机->证书信任设置
5.3 没弹出是否允许设备连接的提醒
5.4 证书过期
证书过期也会导致抓到的请求报错unknown,此时需要重新安装证书并信任
报错如下:
重新安装并信任证书: