Loading...
avatar

Mac下Charles使用教程

简介

是什么?

Charles是常用的截取网络封包的工具,Mac、Windows和linux下均可用

能做什么?
  • 支持截取Http和Https(支持SSL代理)网络封包,
  • 支持流量控制,可以模拟慢网、弱网等case
  • 支持AJAX调试,可以自动格式化json或xml
  • 支持重发网络请求,进行后端压测
  • 支持网络请求和响应内容的mock修改
相关软件

fiddler、tcpdump

工作原理

安装配置

Charles安装
代理设置
设置charles为设置成系统代理

开启Charles的代理功能

手机连Charles
  • Mac上查IP Address
  • 手机Wifi连对应服务器+端口(8888)
  • 第一次连接好后,Charles会弹出对应询问框(连上才会有),点击allow开始使用
Https截取配置

给Mac安装证书,并信任证书
给手机安装证书(需要安装伪CA证书)

Charles设置SSL代理

功能介绍

模拟弱网

修改请求或响应内容
  • Breakpoint
     临时性网络内容修改
  • Rewrite
     适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。主要可以对某些匹配请求的header、host、url、path、query param、response status、body进行rewrite
  • Repeat
     用作接口压力测试
  • Map
     MapRemote重定向,适用于不同服务器切换测试
     MapLocal重定向到本地数据,适用于本地修改及时查看数据响应
  • DNS Spoofing Setting
     适用于需要将域名打到ip地址的服务器上
反向代理

常见坑

Charles与翻墙软件冲突
Charles设置MapLocal在Android中出现乱码

原因:MapLocal的Response的Headers中Content-Type值为text/plain,没有指定编码,Android的网络解析框架如果不支持的话则会出现乱码
解决:Tools->Rewrite->Rewrite Rule

Charles连接不上

其它配置正确情况下,请先用网线试下,是否可以连接成功,如果可以的话,基本确认是Mac的wifi网络对手机不可见,如果属于公司网络,联系公司内网进行设置,保证手机和Mac的网段一致

Author: Afree
Link: https://afree8909.github.io/blog/2018/02/08/%20Mac%E4%B8%8BCharles%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.

Comment