返回

Charles抓包之踩坑实录

前端

一、无法抓取HTTPS请求

使用Charles抓包时,我们可能会遇到无法抓取HTTPS请求的情况。这是因为HTTPS请求使用了SSL/TLS加密,Charles默认情况下无法解密这些请求。要解决这个问题,我们需要安装Charles的根证书。

安装Charles的根证书的方法如下:

  1. 打开Charles,点击“Help”菜单,选择“SSL Proxying”选项。
  2. 在弹出的窗口中,点击“Install Charles Root Certificate”按钮。
  3. 按照提示操作,将Charles的根证书安装到你的电脑上。

安装完成后,你就可以抓取HTTPS请求了。

二、抓取HTTPS请求时出现证书错误

在抓取HTTPS请求时,我们可能会遇到证书错误。这是因为Charles的根证书没有被信任。要解决这个问题,我们需要将Charles的根证书添加到受信任的根证书列表中。

添加Charles的根证书到受信任的根证书列表中的方法如下:

  1. 打开控制面板,选择“Internet选项”。
  2. 点击“内容”选项卡,然后点击“证书”按钮。
  3. 在弹出的窗口中,点击“受信任的根证书颁发机构”选项卡。
  4. 点击“导入”按钮,选择Charles的根证书文件。
  5. 点击“确定”按钮,完成证书的导入。

导入完成后,你就可以抓取HTTPS请求,而不会出现证书错误了。

三、无法抓取本地请求

Charles默认情况下只能抓取通过HTTP代理发送的请求。这意味着如果你使用的是本地代理,则Charles将无法抓取本地请求。要解决这个问题,我们需要配置Charles,使其能够抓取本地请求。

配置Charles抓取本地请求的方法如下:

  1. 打开Charles,点击“Proxy”菜单,选择“Proxy Settings”选项。
  2. 在弹出的窗口中,勾选“Enable transparent HTTP proxying”选项。
  3. 点击“OK”按钮,保存设置。

配置完成后,你就可以抓取本地请求了。

四、抓取请求时出现乱码

在抓取请求时,我们可能会遇到乱码的情况。这是因为Charles默认情况下使用的是UTF-8编码。如果服务器返回的请求数据不是UTF-8编码的,则Charles将无法正确解析这些数据,从而导致乱码。要解决这个问题,我们需要配置Charles,使其能够正确解析非UTF-8编码的数据。

配置Charles正确解析非UTF-8编码数据的方法如下:

  1. 打开Charles,点击“Proxy”菜单,选择“Proxy Settings”选项。
  2. 在弹出的窗口中,点击“Advanced”按钮。
  3. 在“Advanced”选项卡中,找到“Decode compressed and gzip responses”选项,并将其勾选。
  4. 点击“OK”按钮,保存设置。

配置完成后,你就可以正确解析非UTF-8编码的数据了。

五、抓取请求时出现超时

在抓取请求时,我们可能会遇到超时的情况。这是因为Charles默认的超时时间太短。要解决这个问题,我们需要配置Charles,使其能够增加超时时间。

配置Charles增加超时时间的方法如下:

  1. 打开Charles,点击“Proxy”菜单,选择“Proxy Settings”选项。
  2. 在弹出的窗口中,点击“Advanced”按钮。
  3. 在“Advanced”选项卡中,找到“Connection timeout (seconds)”选项,并将其值增加到更大的值。
  4. 点击“OK”按钮,保存设置。

配置完成后,你就可以增加超时时间了。