美文网首页
Mac 中Charles使用笔记

Mac 中Charles使用笔记

作者: 呆呆冬 | 来源:发表于2019-01-01 12:31 被阅读19次

1.下载、安装 Charles

https://www.charlesproxy.com/download/
选择macOS版本

2. Charles破解激活方法——注册码

Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,使用过程中不定时会中断 5 秒钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。

最简单的,就是买一个激活码,在网上找到一个,记录一下。
// Charles Proxy License
// 适用于Charles任意版本的注册码,谁还会想要使用破解版呢。
// Charles 4.2.7目前是最新版,可用。

Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4

Help—>Register Charles:


重启即可激活(不会再弹那个烦人的弹窗了)。

3.安装Charles Root Certificate.

官网说法如下:

按照以上提示照做即可:

钥匙串中始终信任Charles CA证书:

image.png

4.Charles进行配置:

菜单:Proxy -> Proxy Settings... -> 勾选 Enable transparent HTTP proxying

5.在iOS设备上配置证书

提示框

按照以上提示,在iOS设备上设置代理,安装证书。

1)设置代理
配置手机网络的HTTP代理为手动,然后更改服务器为电脑的IP,端口为8888 :

服务器(局域网IP)的三种获取方法:
a. 直接从上面提示框中获取;
b. 终端命令获取:ifconfig en0

c. 系统网络查看IP :

2)安装证书
用safari浏览器打开:chls.pro/ssl 来跳转安装证书:

之前如果出现如下,选择允许即可:

3)信任证书(很容易忽略的一步):

通用->关于本机->证书信任设置->信任证书

否则会出现抓取https时出现unknow的问题

6.解决抓取HTTPS请求时乱码问题

菜单:Proxy -> SSL Proxying Settings... -> 添加需要查看https请求的域名

方便起见,域名直接用通配符*,端口用443

添加好后,再次请求,就不会再有乱码了。

7.Charles 主界面介绍

Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”:

Structure 视图将网络请求按访问的域名分类。
Sequence 视图将网络请求按访问的时间排序。

大家可以根据具体的需要在这两种视图之间来回切换。请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。

对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是 POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles 可以自动帮你将 JSON 内容格式化,方便你查看。如果响应内容是图片,那么 Charles 可以显示出图片的预览。

8.模拟慢速网络

在做移动开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常。Charles 对此需求提供了很好的支持。

在 Charles 的菜单上,选择 “Proxy”->”Throttle Setting” 项,在之后弹出的对话框中,我们可以勾选上 “Enable Throttling”,并且可以设置 Throttle Preset 的类型。

如果我们只想模拟指定网站的慢速网络,可以再勾选上图中的 “Only for selected hosts” 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。

9.修改网路请求内容

有些时候为了调试服务器的接口,我们需要反复尝试不同参数的网络请求。Charles 可以方便地提供网络请求的修改和重发功能。只需点击菜单栏的 “Edit”按钮,即可创建一个可编辑的网络请求。如下所示:


相关文章

网友评论

      本文标题:Mac 中Charles使用笔记

      本文链接:https://www.haomeiwen.com/subject/ootglqtx.html