charles-ios


简介

是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。

主要功能

  • 支持SSL代理。可以截取分析SSL的请求。

  • 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。

  • 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。

  • 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。

  • 支持重发网络请求,方便后端调试。

  • 支持修改网络请求参数。

  • 支持网络请求的截获并动态修改。

  • 检查HTML,CSS和RSS内容是否符合W3C标准。

没错,以上来自百度百科:https://baike.baidu.com/item/Charles/7841179?fr=aladdin

按照我的说法就是抓取网络数据的.
我们在开发中,某些功能的调试和测试需要后台配合修改数据.有了它你就可以一人独自嗨,想怎么修改测试就怎么来.

一.安装

Charles下载地址:https://www.charlesproxy.com

  • 没注册的charles,30分钟就会关闭一次.但是依然还是可以使用的.

二.抓取手机网络包

  1. Charles默认抓取电脑网络数据

    设置Proxy.png

    勾选表示抓取电脑网络数据.png
  2. 设置抓取手机数据,这里以iOS为例

  • 保证手机和电脑在同一个wifi下面
  • 查看当前电脑ip

    image
  • 配置Charles:在菜单栏上选择 Proxy->Proxy Settings,填入代理端口 8888,并勾上 “Enable transparent HTTP proxying” 即完成了代理
  • 在手机wifi网络中添加代理,输入电脑IP和charles的端口号 8888

    image.png
  1. 配置抓HTTPS包
  • Mac安装SSL证书,在Help→SSL Proxying→Install….,如下图所示:

    image.png
  • 选择后,就会出现证书下载,下载成功后会电脑”钥匙串访问“中看见(这里我已经安装并信任过了),然后双击下载的证书,勾选信任即可,如下图所示(在钥匙串访问中寻找下Charles):

    image.png
  • 配置信任

    image.png
  • 手机安装SSL证书,在SSL Proxying中勾选Install …Mobile Device 会弹出一个框,用手机(处于代理状态下)登陆指定的url下载证书即可,如下图所示:

    然后按照顺序按照即可.png
  1. 这时候你抓https的时候还是发现不行,乱码加unknown

    image.png
  • 这时候我们还需要一步操作,就是将想要抓的https加入到SSL代理中,这样才能被Charles识别并解析,选择我们要抓的请求,右键你乱码的域名选择”Enable SSL Proxying”,如下图所示:

    image.png

三.其它常用功能

  1. 网络限速

    网络限速.png

2.通过修改数据源

  • 修改服务器返回的内容
    Map Remote(Tools→Map Remote Settings),将网络响应定向至另外一个网络服务,从而达到修改返回内容的目的,如下图所示:

    修改请求服务器.png
  • Map Local(Tools->Map Local Settings),将网络响应定向至本地文件,从而达到修改返回内容的目的,如下图所示:

    image.png

3.断点调试,修改网络请求和响应内容

  • 打断点
    选中需要打断点的域名(一般断点在请求的父目录),右键->Breakpoints
  • 打了断点,代理会在发送请求的时候拦截并断点网络请求.

    image.png

4.设置关注请求(有时间,一时间会有多个请求,为了只关注我们关注的请求,简化),选中我们关系的请求,设置Focus即可.

image.png

No Responses

发表回复

您的电子邮箱地址不会被公开。