Charles 功能介绍和使用教程

Charles 简介

Charles 是在 PC 端经常使用的网络封包截取工具,在作移动开发时,咱们为了调试与服务器端的网络通信协议,经常须要截取网络封包来分析。除了在作移动开发中调试端口外,Charles 也能够用于分析第三方应用的通信协议。配合 Charles 的 SSL 功能,Charles 还能够分析 Https 协议。php

Charles 经过将本身设置成系统的网络访问代理服务器,使得全部的网络访问请求都经过它来完成,从而实现了网络封包的截取和分析。css

Charles 是收费软件,能够免费试用 30 天。试用期事后,未付费的用户仍然能够继续使用,可是每次使用时间不能超过 30 分钟,而且启动时将会有 10 秒种的延时。所以,该付费方案对广大用户仍是至关友好的,即便你长期不付费,也能使用完整的软件功能。只是当你须要长时间进行封包调试时,会由于 Charles 强制关闭而遇到影响。html

Charles 主要的功能包括:web

  • 截取 Http 和 Https 网络封包。
  • 支持重发网络请求,方便后端调试。
  • 支持修改网络请求参数。
  • 支持网络请求的截获并动态修改。
  • 支持模拟慢速网络。

下载安装 Charles

Charles 支持的操做系统包括:

  • Windows 64 bit(msi)
  • Windows 32 bit(msi)
  • macOS(dmg)
  • Linux 64 bit(tar.gz)
  • Linux 32 bit(tar.gz)

打开浏览器访问 Charles 官网 ,下载相应系统的 Charles 安装包,而后安装便可:后端

  • Windows: 运行安装应用程序以在程序菜单中安装 Charles。
  • Mac OS X: 经过双击解压缩下载文件,而后将 Charles 应用程序复制到 Applications 目录中。
  • Linux: Charles 拥有 APTYUM 存储库,若是你有基于 Debian 或基于 Red Hat 的 Linux 发行版,这是安装 Charles 的首选方法。不然,将 tar.gz 文件解压缩到适当的站点。若是您之前安装过 Charles 而且正在进行升级;首先确保 Charles 没有运行,而后安装或复制在之前安上。经过运行 bin/charles 脚本启动 Charles。

若是使用 Firefox,也能够下载 Firefox 插件。参考Firefox Add-On浏览器

Charles 主界面介绍

Charles 的主界面视图以下图所示: 缓存

工具导航栏

Charles 顶部为菜单导航栏,菜单导航栏下面为工具导航栏。视图以下图所示: 安全

工具导航栏中提供了几种经常使用工具:

  • :清除捕获到的全部请求
  • :红点状态说明正在捕获请求,灰色状态说明目前没有捕获请求。
  • :灰色状态说明是没有开启网速节流,绿色状态说明开启了网速节流。
  • :灰色状态说明是没有开启断点,红色状态说明开启了断点。
  • :编辑修改请求,点击以后能够修改请求的内容。
  • :重复发送请求,点击以后选中的请求会被再次发送。
  • :验证选中的请求的响应。
  • :经常使用功能,包含了 Tools 菜单中的经常使用功能。
  • :经常使用设置,包含了 Proxy 菜单中的经常使用设置。

主界面视图

Charles 主要提供两种查看封包的视图,分别名为 StructureSequence服务器

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

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

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

Charles 菜单介绍

Charles 的主菜单包括:FileEditViewProxyToolsWindowHelp。用的最多的主菜单分别是 ProxyTools

Proxy 菜单

Charles 是一个 HTTP 和 SOCKS 代理服务器。代理请求和响应使 Charles 可以在请求从客户端传递到服务器时检查和更改请求,以及从服务器传递到客户端时的响应。下面主要介绍 Charles 提供的一些代理功能。Proxy 菜单的视图以下图所示:

Proxy 菜单包含如下功能:

  • Start/Stop Recording:开始/中止记录会话。
  • Start/Stop Throttling:开始/中止节流。
  • Enable/Disable Breakpoints:开启/关闭断点模式。
  • Recording Settings:记录会话设置。
  • Throttle Settings:节流设置。
  • Breakpoint Settings:断点设置。
  • Reverse Proxies Settings:反向代理设置。
  • Port Forwarding Settings:端口转发。
  • Windows Proxy:记录计算机上的全部请求。
  • Proxy Settings:代理设置。
  • SSL Proxying Settings:SSL 代理设置。
  • Access Control Settings:访问控制设置。
  • External Proxy Settings:外部代理设置。
  • Web Interface Settings:Web 界面设置。

Recording Settings(记录会话设置)

Recording Settings 和 Start/Stop Recording 配合使用,在 Start Recording 的状态下,能够经过 Recording Settings 配置 Charles 的会话记录行为。Recording Settings 的视图以下图所示:

Recording Settings 有 OptionsIncludeExclude 三个选项卡:

  • Options:经过 Recording Size Limits 限制记录数据的大小。当 Charles 记录时,请求、响应头和响应体存储在内存中,或写入磁盘上的临时文件。有时,内存中的数据量可能会变得太多,Charles 会通知您并中止录制。在这种状况下,您应该清除 Charles 会话以释放内存,而后再次开始录制。在录制设置中,您能够限制 Charles 将记录的最大大小; 这根本不会影响你的浏览,Charles 仅会中止录制。
  • Include:只有与配置的地址匹配的请求才会被录制。
  • Exclude:只有与配置的地址匹配的请求将不会被录制。

IncludeExclude 选项卡的操做相同,选择 Add,而后填入须要监控的Procotol、Host 和 Port等信息,这样就达到了过滤的目的。以下图所示:

还有一种方法就是在一个请求网址上右击选择 Focus,而后其余的请求就会被放到一个叫 Other Host 的分类里面,这样也达到了过滤的目的。

Throttle Settings(节流设置)

Throttle Settings 和 Start/Stop Throttling 配合使用,在 Start Throttling 的状态下,能够经过 Throttle Settings 配置 Charles 的网速模拟配置。Throttle Settings 的视图以下图所示:

勾选 Enable Throttling 启用网速模拟配置,在 Throttle Preset 下选择网络类型便可,具体设置能够根据实际状况自行设置。若是只想模拟指定网站的慢速网络,能够再勾选上图中的 Only for selected hosts 项,而后在对话框的下半部分设置中增长指定的 hosts 项便可。

Throttle Settings 视图中的选项含义以下:

  • Bandwidth:带宽
  • Utilistation:利用百分比
  • Round-trip:往返延迟
  • MTU:字节

Breakpoint Settings(断点设置)

Breakpoint Settings 和 Enable/Disable Breakpoints 配合使用,在 Enable Breakpoints 的状态下,能够经过 Breakpoint Settings 配置 Charles 的断点模式。Breakpoint Settings 的视图以下图所示:

勾选 Enable Breakpoints 启用断点模式,选择 Add,而后填入须要监控的Scheme、Procotol、Host 和 Port 等信息,这样就达到了设置断点的目的。而后能够来观察或者修改请求或者返回的内容,可是在这过程当中须要注意请求的超时时间问题。或者能够在某个想要设置断点的请求网址上右击选择 Breakpoints 来设置断点。

Reverse Proxies Settings(反向代理设置)

反向代理在本地端口上建立 Web 服务器,该端口透明地将请求代理给远程 Web 服务器。反向代理上的全部请求和响应均可以记录在 Charles 中。

若是您的客户端应用程序不支持使用 HTTP 代理,或者您但愿避免将其配置为使用代理,那么反向代理颇有用。建立原始目标 Web 服务器的反向代理,而后将客户端应用程序链接到本地端口; 反向代理对客户端应用程序是透明的,使您能够查看 Charles 之前可能没法访问的流量。

有关反向代理的更多信息,请访问 Reverse proxy

Port Forwarding Settings(端口转发)

能够将任何 TCP/IPUDP 端口配置为使用 Port Forwarding 工具从 Charles 转发到远程主机。这样能够调试 Charles 中的任何协议。

在 Macromedia Flash 中调试 XMLSocket 链接时,这尤为有用。

还可使用 Charles 做为 SOCKS 代理,所以无需设置端口转发。

Windows Proxy(记录计算机上的全部请求)

若是想要抓取电脑端的请求,勾选 Windows Proxy 选项便可;若是只须要抓取手机请求,则取消勾选这个选项。

Proxy Settings(代理设置)

Proxy Settings 的视图以下图所示:

代理端口默认为 8888(能够修改),而且勾上 Enable transparent HTTP proxying 就完成了在 Charles 上的代理设置。

SSL Proxy Settings(SSL 代理设置)

SSL Proxy Settings 的视图以下图所示:

勾上 Enable SSL proxying 就完成了在 Charles 上的 SSL 代理设置。以后也能够选择 Add,而后填入须要监控的 Host 和 Port 信息,这样就达到了针对某个域名启用 SSL 代理的目的。

Access Control Settings(访问控制设置)

Access Control Settings 表示访问控制设置。访问控制列表肯定谁可使用此 Charles 实例。一般,您在本身的计算机上运行 Charles,而且您只打算本身使用它,所以 localhost 始终包含在访问控制列表中。也能够选择 Add,而后填入容许访问的 IP,这样就达到了容许某个 IP 访问 Charles 的目的。

External Proxy Settings(外部代理设置)

External Proxy Settings 表示外部代理设置。可能在网络上有一个代理服务器,必须使用该代理服务器才能访问 Internet。在这种状况下,须要将 Charles 配置为在尝试访问 Internet 时使用现有代理。

能够配置单独的代理地址和端口:

  • HTTP
  • HTTPS
  • SOCKS

若是您有 SOCKS 代理,Charles 将把它用于全部非 HTTP(S) 流量,例如端口转发。

Web Interface Settings(Web 界面设置)

Web Interface Settings 表示 Web 界面设置。Charles 有一个 Web 界面,可让您从浏览器控制 Charles,或使用 Web 界面做为 Web 服务使用外部程序。

在 External Proxy Settings 视图中勾选 Enable the web interface 选项启用 Web 界面。能够容许匿名访问,也能够配置用户名和密码。还能够经过在配置使用 Charles 做为其代理的 Web 浏览器中访问 http://control.charles/ 来访问 Web 界面。

Web界面提供对如下功能的访问:

  • 节流控制
    • 激活或停用任何已配置的限制预设
  • 录音控制
    • 开始和中止会话录制
  • 工具
    • 激活和停用工具
  • 会话控制
    • 清除当前会话
    • 以任何支持的格式导出当前会话
    • 以 Charles 的本机会话格式下载当前会话
  • 退出查尔斯

经过检查 Web 界面 HTML ,您能够推导出如何将其用做 Web 服务来自动化 Charles。

Tools 菜单

Charles 是一个 HTTP 和 SOCKS 代理服务器,全部的请求都会通过 Charles。下面主要介绍 Charles 提供的一些实用工具。Tools 菜单的视图以下图所示:

Tools 菜单包含如下功能:

  • No Caching Settings:禁用缓存设置。
  • Block Cookies Settings:禁用 Cookie设置。
  • Map Remote Settings:远程映射设置。
  • Map Local Settings:本地映射设置。
  • Rewrite Settings:重写设置。
  • Black List Settings:黑名单设置。
  • White List Settings:白名单设置。
  • DNS Spoofing Settings:DNS 欺骗设置。
  • Mirror Settings:镜像设置。
  • Auto Save Settings:自动保存设置。
  • Client Process Settings:客户端进程设置。
  • Compose:编辑修改。
  • Repeat:重复发包。
  • Repeat Advanced:高级重复发包。
  • Validate:验证。
  • Publish Gist:发布要点。
  • Import/Export Settings:导入/导出设置。
  • Profiles:配置文件。
  • Publish Gist Settings:发布要点设置。

No Caching Settings(禁用缓存)

No Caching 工具可防止客户端应用程序(如 Web 浏览器)缓存任何资源。所以,始终向远程网站发出请求,您始终能够看到最新版本。

适用范围

该工具能够做用于每一个请求(选中 Enable No Caching 便可),也能够仅对你配置的请求启用(启用 No Caching 的同时,请选中 Only for selected locations)。当用于选定的请求时,可使用简单但功能强大的模式匹配将工具的效果限制为指定的主机和路径。

工做原理

No Caching 工具经过操纵控制响应缓存的 HTTP 请求头来防止缓存。从请求中删除 If-Modified-Since 和 If-None-Match 请求头,添加 Pragma:no-cache 和 Cache-control:no-cache。从响应中删除 Expires,Last-Modified 和ETag 请求头,添加 Expires:0 和 Cache-Control:no-cache。

Block Cookies Settings(禁用 Cookie)

Block Cookies 工具阻止了 Cookie 的发送和接收。它可用于测试网站,就像在浏览器中禁用了 Cookie 同样。 请注意,网络爬虫(例如 Google)一般不支持 Cookie,所以该工具还可用于模拟网络爬虫网站的视图。

适用范围

该工具能够做用于每一个请求(选中 Enable Block Cookies 便可),也能够仅对你配置的请求启用(启用 Block Cookies 的同时,请选中 Only for selected locations)。当用于选定的请求时,可使用简单但功能强大的模式匹配将工具的效果限制为指定的主机和路径。

工做原理

Block Cookies 工具经过操纵控制响应 Cookies 的 HTTP 请求头来禁用 Cookies。从请求中移除 Cookie 请求头,防止 Cookie 值从客户端应用程序(例如 Web 浏览器)发送到远程服务器。从响应中删除 Set-Cookie 请求头,防止请求设置客户端应用程序从远程服务器接收的 Cookie。

Map Remote Settings(远程映射)

Map Remote 工具根据配置的映射更改请求站点,以便重新站点透明地提供响应,就好像这是原始请求同样。

经过此映射,您能够从另外一个站点提供所有或部分站点。例如:

  • 能够把 xk72.com/charles/ 映射到 localhost/charlesdev/ 来为 xk72.com 提供一个子目录;
  • 能够把 xk72.com/*.php 这种指定后缀的全部文件映射到 localhost/charlesdev/。
使用建议

若是您拥有站点的开发版本而且但愿可以经过开发提供的某些请求浏览实时站点,则 Map Remote 很是有用。例如,您可能但愿从开发服务器提供 css 和 images 目录。使用 live.com/css/ 等映射到 dev.com/css/ 或 live.com/*.css 到 dev.com 。

映射类型
  • 能够将目录映射到目录,如 xk72.com/charles/ 映射到 localhost/charlesdev/;
  • 能够将文件映射到文件,如 xk72.com/charles/download.php 映射到 abc.com/testing/test.html;
  • 能够将带有文件模式的目录映射到目录,如 xk72.com/charles/*.php 到 localhost/charlesdev/;
  • 若是在目标映射中未指定路径,则 URL 的路径部分将不会更改。若是要映射到根目录,请在目标路径字段中已 / 结尾。
HTTPS

Map Remote 工具能够将 HTTP 请求映射到 HTTPS 目标,反之亦然,所以您能够将 HTTP 或 HTTPS 站点映射到其对立面。

站点匹配

每一个站点匹配可能包含协议、主机、端口和路径模式,以匹配特定的 URL。站点可能包括通配符。当您向此工具添加新站点时,可能会找到有关建立站点匹配的更多帮助。

Map Local Settings(本地映射)

Map Local 工具使您可使用本地文件,就像它们是远程网站的一部分同样。您能够在本地开发文件,并像在线上同样测试它们。本地文件的内容将返回给客户端,就像它是正常的远程响应同样。

Map Local 能够大大加快开发和测试速度,不然您必须将文件上传到网站以测试结果。使用 Map Local,您能够在开发环境中安全地进行测试。

动态文件

动态文件(例如包含服务器端脚本的文件)不会由 Map Local 执行,所以若是文件中有任何脚本,脚本将按原样返回到浏览器,这可能不是预期的结果。若是您想使用动态文件,就好像它们是远程网站的一部分同样,请参阅 Map Remote 工具。

工做原理

当请求与 Map Local 映射匹配时,它会检查与路径匹配的本地文件。它不包括查询字符串(若是有)。若是在本地找到所请求的文件,则将其做为响应返回,就好像它是从远程站点加载的同样,所以它对客户端是透明的。若是在本地找不到所请求的文件,那么该请求会像日常同样由网站提供,返回由真正的服务器提供的数据。

站点匹配

每一个站点匹配可能包含协议、主机、端口和路径模式,以匹配特定的 URL。站点可能包括通配符。当您向此工具添加新站点时,可能会找到有关建立站点匹配的更多帮助。

Rewrite Settings(重写)

Rewrite 工具容许建立请求和响应在经过 Charles 时修改他们的规则。如:添加或更改头信息、搜索和替换响应内容中的某些文本等。

重写集

重写集能够单独激活和停用。每一个集合包含站点和规则的列表。这些站点选择规则将要运行的请求和响应。

重写规则

每一个规则都描述了一次重写操做。规则可能会影响请求URL的 Header,正文或部份内容;它能够根据请求或响应来操做;它能够定义搜索、替换或者仅替换样式重写。

站点匹配

每一个站点匹配可能包含协议、主机、端口和路径模式,以匹配特定的 URL。站点可能包括通配符。当您向此工具添加新站点时,可能会找到有关建立站点匹配的更多帮助。

调试

当重写操做未按预期工做时,重写工具可能难以调试。若是您遇到问题,请尝试添加一个很是基本的规则,例如添加明显头信息的规则,以便您能够查看规则是否与请求彻底匹配。同时打开错误日志中的调试,以获取从 Charles 中的 Window 菜单访问的错误日志中打印的一些调试信息。

Black List Settings(黑名单)

Black List 工具容许输入应该被阻止的域名。当 Web 浏览器尝试从被列入黑名单的域名请求任何页面时,该请求将被 Charles 阻止。您还能够输入通配符来阻止其子域名。

White List Settings(白名单)

Black List 工具容许输入仅仅被容许的域名。Black List 工具将阻止除被列入白名单的域名以外的全部请求。

白名单工具用于仅容许指定的域名;黑名单工具,用于仅屏蔽指定的域名。

若是一个请求与“黑名单”和“白名单”都匹配,则该请求会被阻止。

DNS Spoofing Settings(DNS 欺骗)

DNS Spoofing 工具容许经过将本身的主机名指定给远程地址映射来欺骗 DNS 查找。 当请求经过 Charles 时,您的 DNS 映射将优先。

Charles 包含配置的域名到 IP 地址映射的列表。当针对列出的域名发出请求时,Spoof DNS 插件会发现欺骗 IP 将请求重定向到该地址。主机HTTP标头保持不变,所以就像您的 DNS 服务器返回欺骗性 IP同样。

虚拟主机

虚拟主机是指单个IP地址上有多个站点,Web 服务器根据浏览器中键入的名称肯定要请求的站点。更准确地说,它查看请求中发送的主机头。

若是没有为您的站点设置 DNS,那么您一般没法测试它,由于您不能只输入 IP 地址,由于服务器没法获取名称,所以没法将请求与网站。使用 DNS 欺骗工具来克服此问题。

Mirror Settings(镜像)

Mirror 工具会在浏览指定站点时,把接收到的响应内容克隆一份,并保存在磁盘上指定的路径下。

保存文件的路径会与浏览站点的目录结构相同,而且 Charles 会为主机名建立一个根目录。文件名从 URL 导出并转换为适合的数据进行保存。查询字符串包含在文件名中。若是收到相同 URL 的两个响应,则后面一个文件会覆盖前面的同名文件,所以保存在镜像中在的响应内容将始终为最新的。

选定站点

能够为每一个请求启用该工具,也能够仅为指定站点启用该工具。当用于选定的站点时,可使用简单但功能强大的模式匹配将工具的效果限制为指定的主机和/或路径。

反作用

若是为请求启用镜像工具,它将致使任何压缩或编码的响应被解码。所以,若是服务器提供了压缩响应,Charles 将在传递给客户端以前对其进行解压缩,这一般不会产生任何影响。可是若是您已经构建了本身的客户端,或者客户端但愿获得压缩响应,此时将会产生影响。使用 web 浏览器则没有任何影响。

Auto Save Settings(自动保存)

Auto Save 工具会按设定的时间间隔自动保存和清除记录会话。

若是您让 Charles 长时间监控网络活动,并但愿将记录分解为可管理的单元,或者避免因数据量过大而可能出现的内存不足状况,这将很是有用。

输入以分钟为单位的保存间隔以及保存会话文件的目录。您能够选择是否在每次运行 Charles 时启动 Auto Save 工具,不然在 Charles 启动时将始终禁用 Auto Save 工具。

会话文件的名称中保存时间戳,格式为 yyyyMMddHHmm,即年月日时分,以便按字母顺序排序时,它们以正确的顺序显示。

Client Process Settings(客户端进程)

Client Process 工具显示负责发出每一个请求的本地客户端进程的名称。客户端进程一般是您的 Web 浏览器(例如 firefox.exe),但客户端进程工具能够帮助您发现许多可能未知的 HTTP 客户端。

客户端进程名称显示在每一个请求的 Notes 区域中。

若是您能够在 Charles 中看到不肯定原始进程的请求,则客户端进程工具颇有用。 它仅适用于在运行 Charles 的计算机上发出的请求。

在 Charles 接受每一个链接以前,该工具将引入一个短暂的延迟。 延迟一般不明显或不显著。

选定站点

能够为每一个请求启用该工具,也能够仅为指定站点启用该工具。当用于选定的站点时,可使用简单但功能强大的模式匹配将工具的效果限制为指定的主机和/或路径。

Compose(编辑修改)

Compose 工具容许在原有的请求基础上修改。

Repeat(重复)

Repeat 工具容许选择一个请求并重复它。Charles 将请求从新发送到服务器,并将响应显示为新请求。若是您正在进行后端更改并但愿在浏览器(或其余客户机)中重复请求的状况下测试这些更改,那么这将很是有用。特别是若是从新建立请求须要花费一些精力,例如在游戏中得到分数,这将节省大量精力。

重复请求是在 Charles 内部完成的,所以没法在浏览器或其余客户端中查看响应,响应只能在 Charles 中查看。

Repeat Advanced(高级重复)

Repeat Advanced 工具扩展了 Repeat 工具,提供了迭代次数和并发数的选项。这对于负载测试很是有用。

Validate(验证)

Validate 工具容许 Charles 经过将它们发送到 W3C HTML 验证器、W3C CSS 验证器和 W3C Feed 验证器来验证记录的响应。

验证报告在 Charles 中显示,其中包含与响应源中相应行相关联的任何警告或错误(双击错误消息中的行号能够切换到源视图)。

由于 Charles 测试它记录的响应,因此它能够测试不易测试的场景,例如在提交表单后呈现错误消息。

从新验证

验证后,能够从验证结果中选择响应并 Repeat,重复原始请求,而后从新验证结果。

Publish Gist(发布要点)

Publish Gist 工具能够将将所选请求和响应做为要点发布。默认状况下,这个要点将匿名发布,这意味着你将没法作到 删除它。能够在 Tools 菜单的 Publish Gist Settings 中受权 Charles 使用您的 GitHub 账户进行发布。

Import/Export Settings(导入/导出)

Import/Export 工具容许导入/导出 Charles 的 ProxyToolsPreferences 等设置。

Profiles(配置)

Profiles 包含全部配置设置的完整副本。

每次更改当前设置时,系统都会更新当前活动的配置文件,当您更改活动配置文件时,全部设置都将恢复为上次使用该配置文件时的状态。

请注意,若是导入已保存的配置,则会覆盖当前配置文件的设置。建议使用导入/导出来备份或建立当前配置和配置文件的快照,以维护多个并行工做区。

Charles 使用教程

经过 Charles 进行 PC 端抓包

Charles 会自动配置浏览器和工具的代理设置,因此说打开工具直接就已是抓包状态了。只须要保证一下几点便可:

  1. 确保 Charles 处于 Start Recording 状态。
  2. 勾选 Proxy | Windows ProxyProxy | Mozilla FireFox Proxy

经过 Charles 进行移动端抓包

手机抓包的原理,和 PC 相似,手机经过把网络委托给 Charles 进行代理与服务端进行对话。具体步骤以下:

  1. 使手机和电脑在一个局域网内,不必定非要是一个 IP 段,只要是在同一个路由器下便可。

  2. 电脑端配置:

    • 关掉电脑端的防火墙(这点很重要)。
    • 打开 Charles 的代理功能:经过主菜单打开 Proxy | Proxy Settings 弹窗,填入代理端口(端口默认为 8888,不用修改),勾选 Enable transparent HTTP proxying
    • 若是不须要抓取电脑上的请求,能够取消勾选 Proxy | Windows ProxyProxy | Mozilla FireFox Proxy
  3. 手机端配置:

    • 经过 Charles 的主菜单 Help | Local IP Address 或者经过命令行工具输入 ipconfig 查看本机的 IP 地址。
    • 设置代理:打开手机端的 WIFI 代理设置,输入电脑 IP 和 Charles 的代理端口。
  4. 设置好以后,咱们打开手机上的任意须要网络请求的程序,就能够看到 Charles 弹出手机请求链接的确认菜单(只有首次弹出),点击 Allow 便可完成设置。

  5. 完成以上步骤,就能够进行抓包了。

经过 Charles 进行 HTTPS 抓包

HTTPS 的抓包须要在 HTTP 抓包基础上再进行设置。须要完成一下步骤:

  1. 完成 HTTP 抓包配置。
  2. 电脑端安装 Charles 证书:经过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate 安装证书。
  3. 设置 SSL 代理:经过主菜单打开 Proxy | SSL Proxy Settings 弹窗,勾选 Enable SSL proxying
  4. 移动端安装 Charles 证书:经过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate on a Mobile Device or Remote Browser 安装证书。
  5. 设置好以后,咱们打开手机上的任意须要网络请求的程序,就能够看到 Charles 弹出手机请求链接的确认菜单(只有首次弹出),点击 Allow 便可完成设置。
  6. 完成以上步骤,就能够进行 HTTPS 抓包了。

Charles License

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

注册码来自于网络,注册码 Windows 和 Mac 通用。

致谢

相关文章
相关标签/搜索