Charles 使用(-)

1.什么是Charles

Charles是在MAC下常用的网络封包截取工具,在做移动开发时,是为了调试与服务端的网络通信协议,常常需要截取网络包来分析。Charles是通过将自己设置成系统的网络访问代理服务器,使所有的网络访问请求都通过它来完成,从而是吸纳了网络封包的截取和分析。

除了移动开发调试工具外,Charles也可以用于分析第三方应用的通讯协议。配合Charles的SSL功能,Charles还可以分析HTTPS协议。Charles是收费的,可免费试用30天。试用期过后每次只能试用30分钟,并且每次启动也会有延时。

Charles主要功能:

    1.截取HTTP和HTTPS网络协议

    2.支持重发网络请求,方便后端调试

    3.支持修改网络请求参数

    4.支持网络请求的截获并动态修改

    5.支持模拟网络

  2.将Charles设置系统代理及使用

启动 Charles 后,第一次 Charles 会请求你给它设置系统代理的权限。你可以输入登录密码授予 Charles 该权限。你也可以忽略该请求,然后在需要将 Charles 设置成系统代理时,选择菜单中的 “Proxy” -> “Mac OS X Proxy” 来将 Charles 设置成系统代理。如下所示

之后,你就可以看到源源不断的网络请求出现在 Charles 的界面中

     3、两种视图查看方式

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

    1.Structure 视图将网络请求按访问的域名分类。

    2.Sequence 视图将网络请求按访问的时间排序

   4.过滤网络请求

通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,以下几种办法:

方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:http://yuantiku.com , 那么只需要在 Filter 栏中填入 yuantiku 即可。

方法二:在 Charles 的菜单栏选择 “Proxy”->”Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图所示:

   5.截取iPhone上的网络包

首先在Charles中设置,要截取 iPhone 上的网络请求,我们首先需要将 Charles 的代理功能打开。在 Charles 的菜单栏上选择 “Proxy”->”Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。如下图所示

然后在iPhone手机上设置,在 iPhone 的 “ 设置 “->” 无线局域网 “ 中,可以看到当前连接的 wifi 名,通过点击右边的详情键,可以看到当前连接上的 wifi 的详细信息,包括 IP 地址,子网掩码等信息。在其最底部有「HTTP 代理」一项,我们将其切换成手动,然后填上 Charles 运行所在的电脑的 IP,以及端口号 8888。

设置好之后,我们打开 iPhone 上的任意需要网络通讯的程序,就可以看到 Charles 弹出 iPhone 请求连接的确认菜单(如下图所示),点击 “Allow” 即可完成设置

6、安装证书截取HTTPS

首先我们需要在 Mac 电脑上安装证书。点击 Charles 的顶部菜单,选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”,然后输入系统的帐号密码,即可在 KeyChain 看到添加好的证书。

在设备上设置好 Charles 为代理后,在手机浏览器中访问地址:http://charlesproxy.com/getssl,即可打开证书安装的界面,安装完证书后,就可以截取手机上的 Https 通讯内容了。不过同样需要注意,默认情况下 Charles 并不做截取,你还需要在要截取的网络请求上右击,选择 SSL proxy 菜单项

7、模拟慢速网络

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

可以再勾选上图中的 “Only for selected hosts” 项

8、修改网络请求

需要在以往的网络请求上点击右键,选择 “Edit”,即可创建一个可编辑的网络请求

你可能感兴趣的:(Charles 使用(-))