美文网首页
Charles的简单使用

Charles的简单使用

作者: 浪尖ON的水滴 | 来源:发表于2020-04-26 17:45 被阅读0次

    Charles只是觉得很好用但是很少知道它是哪家公司的,在网上一番查找后,发现是一家叫 XK72 的公司,查看了它们的官网发现了这样的一段话:

    Two specialist fields: weaponry and space medicine an interesting combination,don‘t you think?

    image.png

    Charles 作为一款开发利器,可以让我们免去debug的操作,直接可以看到数据请求的结果,用好了它可以让我们开发事半功倍。

    Charles是什么

    image.png

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

    说白了它就像是一个中间人,给双方互通消息的传真机,它在帮你们传输信息的同时又自己备份一份数据,同时又能去做一些事情,来改变传输的方式或者是内容的一个工具,大大的提高我们的开发效率.

    代码是不会骗人的,数据也不会,眼见为真!

    43b7742f2d9c4e89890385786cc68472.jpg

    开发中经常遇到互相扯皮的事情,前端说我没问题,后端说我也没问题,人在家中坐,锅在天上来,那就自证清白


    b480b5ac9ccda15a3965b8838445537d.jpeg

    希望你学会了使用它之后,能让你少点头大的事情.

    Charles的安装
    Charles 是收费的,可以免费试用30天,可以直接去Charles官网下载,网上也有破解版的资源,支持原创,支持正版。接下来我们来说说它的使用,看看能不能让你眼前一亮。

    Charles桌面GUI
    Charles 主要提供两种种查看封包的视图,分别名为 StructureSequence,Structure 视图将网络请求按访问的域名分类,Sequence 视图将网络请求按访问的时间排序。

    image.png
    image.png

    Charles设置系统代理
    Charles 是通过将自己设置成代理服务器来完成抓包的,勾选系统代理后,系统本地发出去的请求都能被截取下来。如果只抓取APP的包的话,可关闭此配置,这样不会出现太多的数据看着比较乱,这样访问电脑上的内容就能抓的到数据了.

    image.png

    截取移动设备上的网络请求包
    这里已苹果手机为例,安卓手机大同小异,对着操作就好.

    我们在调试移动APP时,需要抓取APP发送的数据包,首先进行设置,Proxy -> Proxy Settings默认端口是8888,根据实际情况可修改。


    image.png

    查看本机IP地址:Help -> Local IP Addresses


    image.png

    设置苹果手机代理服务器。无线局域网->配置代理->手动
    按照设置的内容配置代理.


    image.png

    打开要调试的APP,请求就会先发送到Charles,然后验证是否允许访问。


    image.png
    当点击允许后,可以在Proxy -> Access Control Settings里看到可以访问此代理服务器列表
    image.png
    设置手机代理信任证书 image.png

    修改参数重新发起请求
    详细操作步骤如图所示:

    image.png
    过滤网络请求
    第一种方法比较简单在Sequence界面的中部的Filter栏中填入需要过滤出来的关键字就行了。
    image.png
    第二种方法使用在菜单栏选择"Proxy"->"Recording Settings",然后选择Include栏,选择Add,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的数据包了.
    image.png

    Exclude是去除某个接口的数据抓包操作,和Include操作一样,
    Options是在数据抓包时候的可选项,可以设置一些限制对抓包操作.

    代理转发
    为了方便我们开发和测试,在开发的时候我们一般会分不同的环境进行开发,例如生产环境、开发环境、测试环境。在测试环境开发好之后我们需要上架前需要发布到预发环境上再次进行测试,这时候就需要我们重新打包APP,测试下预发布环境是否是正常的,或者是需要做不同环境的接口测试这样需要重复打包,这样的做的话效率极低,使用charles可以为我们完美的解决这个问题.
    选择要转发的接口右键-> Map Remote

    image.png
    然后更改你要转发的接口数据:
    image.png

    配置菜单栏Tools-> Map Remote

    image.png
    image.png
    接着你就可以看到代理转发之后的数据请求了,是不是很方便.
    image.png
    https抓包
    http和http是的区别:https://www.runoob.com/w3cnote/http-vs-https.html 科普.

    手上只有苹果设备,emmmm 接下来已苹果设备为例来说https的抓包流程的使用.以图片的方式来展示操作流程.
    Mac 电脑使用 设置CA证书


    image.png

    钥匙串信任证书


    image.png
    手机上注册证书
    image.png
    手机浏览器输入 chls.pro/ssl下载证书
    image.png

    点击允许,点击安装手机证书


    image.png
    安装完成证书后,在设置-->通用-->关于本机-->证书信任设置
    image.png

    接下来就可以抓取Https的数据包了.

    模拟网速慢

    在测试的时候想要模拟一下网络慢的情况,在Proxy->Throttle Setting,然后选择Enable Throttling,自己设置想要的网络环境.


    image.png
    image.png

    服务器压测
    我们在想打压的网络请求上(POST 或 GET 请求均可)右击,然后选择 「Repeat Advanced」菜单项,如下所示:

    image.png

    设置断点
    要针对某一个请求设置断点,只需要在这个请求网址右击选择Breakpoints,然后点击断点按钮,就可以断点某一个请求了,在断点的时候可以更改这个请求的参数与数据,达到我们想要的数据结果.

    image.png

    先写到这里,有好用的功能在补充,待续。。。

    相关文章

      网友评论

          本文标题:Charles的简单使用

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