charles使用(安装、mock、限速、断点功能)
我们在进行B/S架构的Web项目开发时,在前端页面与后台交互的调试的时候,通常使用在JSP中加入“debugger;”断点,然后使用浏览器的F12开发者工具来查看可能出错的地方的数据。或者使用HttpWatch来抓包分析。
在开发移动端项目没有网页的情况下,就不能通过这种方式抓取数据进行分析了。这时可以使用Charles满足以上要求。Charles是一款Http代理服务器和Http监视器,当移动端在无线网连接中按要求设置好代理服务器,使所有对网络的请求都经过Charles客户端来转发时,Charles可以监控这个客户端各个程序所有连接互联网的Http通信。
Charles 主要的功能包括:
1)截取 Http 和 Https 网络封包。
2)支持重发网络请求,方便后端调试。
3)支持修改网络请求参数。
4)支持网络请求的截获并动态修改。
5)支持模拟慢速网络。
1.Charles安装与配置:
1.1.打开浏览器访问Charles官网https://www.charlesproxy.com/,下载相应系统的Charles安装包,然后一键安装即可。
安装完成之后,打开Charles,界面如下:
首先,电脑安装证书:
以上步骤确认安装证书;
1.2.以上由于勾选了如下选项,抓取到了电脑本地发送的请求,展示了强求相关域名;
1.3.上图中,有些请求是锁的标志,有的不是,有锁的标志是因为没有允许,需要先允许再重新请求相关请求,就可以正常查看了;
做如下操作,允许某个请求:
1.4.可以看到请求栏有很多很多的锁标志,这时一个一个打开太过繁琐,工作量很大,此时可以做相关设置允许所有:
如下:
如上操作之后,可以正常获取网络请求;
1.5.以上操作抓取到了电脑本地请求,那么如何抓取移动端APP的请求呢?
需求做以下配置:
1)查看Charles端口:
2)查看电脑IP:
两种方法:
打开cmd,进入dos窗口,输入ipconfig查看电脑IP;
可以看到IP如下:
已经知道电脑IP和Charles端口,那么可以在手机WiFi处做如下配置:
确认之后,查看Charles页面是否有如下提示,如有提示,表示连接成功了,注意点击allow允许:
配置好之后,手机在浏览器中输入chls.pro/ssl安装证书:
输入之后,跳转如下页面:(以iOS为例,安卓也差不多)
如上配置成功,可以成功抓取移动端请求了;
注意:
安装证书时如果提示不安全,继续即可,安装这个证书是保证Charles可以截取到你手机与服务端请求的交互,进行代理,不会有其他的安全隐患;
查看电脑IP时,提供另一种方式也可,推荐使用上面ipconfig的方式:
2.以上操作完成了安装与配置操作,下面开始介绍Charles常用功能:
2.1.基本功能;
1)界面
Structure模式的优点 :
1.以域名划分请求信息 可以很容易定位需要分析和处理的数据。
2.清晰看请求的数据结构,
展开域名,可以看到请求,我这边手机随意打开一个应用,看到如上请求,选中任意请求,右边可以看到常用的概要,请求和响应数据;
Sequence模式:
Sequence模式的优点 :
1.请求快就在前面显示, 因为这里是以数据请求的顺序去执行的
2.可以很清晰的看到全部请求,(包括资源请求,图片,文本,音乐等等)
在sequence中可以看到按时间顺序排序的请求,统一可以看到请求和响应,看需求使用;
Filter处也可以过滤请求;
2)mock功能:
Charles 的 Map 功能分 Map Remote 和 Map Local 两种,顾名思义,Map Remote 是将指定的网络请求重定向到另一个网址请求地址,Map Local 是将指定的网络请求重定向到本地文件。
当需求修改数据时,可使用mock功能。
步骤;
1)选中一个请求,保存响应:
2)报保存的响应复制到bejson格式化工具中转换:
3)在保存的文件中把精选排行改成精选:
4)在Charles中做如下设置:
5)手机重新刷新请求;
可以看到图标变成文本图形,说明mock成功,看响应数据,是修改后的精选文案,查看手机显示:
看到手机展示由精选排行变为修改后的精选,mock成功!!
注意:
上面用的是mock local功能,还有mock remote功能也是一样使用:
3)限速功能:
在做移动开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常(如模拟应用在网络较慢时的响应时间等情景)。Charles 对此需求提供了很好的支持。
限速之后,看手机的响应,可以看到页面响应更慢了,如果效果不明显,可以模拟较极端的情况。
4)断点功能:
有些时候为了调试服务器的接口,我们需要反复尝试不同参数的网络请求。Charles 可以方便地提供网络请求的修改和重发功能。只需要在以往的网络请求上点击右键,选择 “Edit”,即可创建一个可编辑的网络请求。
步骤;
1)选中需要修改的接口,右键-breakpoint,加入断点:
2)在断点设置中进行设置:
3)手机刷新页面,重新请求这个接口,根据需求进行编辑:
4)查看手机;
修改成功!!
以上,介绍了Charles的几个常用功能,后续有时间看看把其他功能进行补充。
————————————————
版权声明:本文为CSDN博主「liuwkk」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liuwkk/article/details/81258522
charles使用(安装、mock、限速、断点功能)的更多相关文章
- Charles破解安装及基本使用
一.Charles简介 1.Charles是一款代理服务器,通过成为电脑或者浏览器的代理,而后截取请求和请求结果达到抓包目的. 2.Charles是用Java写的,能够在Windows,Mac,Lin ...
- Charles的安装及使用过程
一.charles的使用 1.1 charles的说明 Charles其实是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的.该 ...
- CentOS 6安装mock
最近工作中需要用到mock,这里介绍两种安装方式.本文的环境为CentOS 6.4 x86_64. 一,使用yum安装mock 安装第三方yum源RPMForge Centos5 64位 wget h ...
- installscript类型 完成时实现推荐安装其他产品的功能
目前好多软件在安装完成时都有什么 立刻运行.打开网址.推荐安装其他工具等功能 我司领导也追时髦要求了这个功能而且要推荐多个,所以这个功能实现起来就需要自己去写代码了.陆陆续续研究了研究了好长时间,由于 ...
- NSIS:使用PassDialog插件实现密码安装(卸载)功能
原文 NSIS:使用PassDialog插件实现密码安装(卸载)功能 有时,出于特殊的需求,我们要给安装或卸载程序加一个密码,只有输入了正确的密码才可以继续.比如: 下面我们使用插件来实现安装密码: ...
- VS2005的数据断点功能
多年前在VS2005强大的条件断点功能里面讨论过VS2005的条件断点功能. 其实在VS2005里面还有比较好用的(为什么我不用很牛逼呢?因为和OD比起来实在是太简陋了,但是使用上还是比较方便的)内存 ...
- Fiddler 断点功能
Fiddler 断点: (1) Fiddler 是以作为代理服务器的方式进行工作的,所以,本地应用与服务器传递的这些数据都会经过 Fiddler:(2) 有的时候,我们希望在传递的中间进行修改后再传递 ...
- CentOS 5.5 虚拟机安装 VirtualBox 客户端增强功能
.启动安装在 VirtualBox 中的 CentOS 5.5 虚拟机,点击“设备” => “安装增强功能”.这个时候你就可以看到有一个“光盘”已经挂载到 CentOS 5.5 的桌面上了.它包 ...
- redhat 6.4 安装VirtualBox自动增强功能功:unable to find the sources of your current Linux kernel
redhat 6.4 安装VirtualBox自动增强功能功能的时候提示: building the main Guest Additions module FAILED unable to find ...
随机推荐
- Dev 日志 | 如何将 jar 包发布到 Maven 中央仓库
摘要 Maven 中央仓库并不支持直接上传 jar 包,因此需要将 jar 包发布到一些指定的第三方 Maven 仓库,比如:Sonatype OSSRH 仓库,然后该仓库再将 jar 包同步到 Ma ...
- 解决方案:从网站下载Excel,我的Office 2016,打开excel文件,显示空白
今天在写Excel导出案例demo的时候发现,Excel下载后打开空白,要打开了看到空白后再点击一次打开后才可以显示,效果就如下图所示: 那么我就不能一次打开吗?我找了半天最终在这个博客找到了答案:h ...
- Docker Compose 基本使用
Dockercompose v3官网文档: https://docs.docker.com/compose/compose-file/ Dockercompose中文: http://www.d ...
- c++ 拷贝构造函数(重点在内含指针的浅拷贝和深拷贝)
今天同事问了一个关于拷贝构造函数的问题,类中包含指针的情况,今天就来说说c++的拷贝构造函数. c++的拷贝构造函数是构造函数的一种,是对类对象的初始化,拷贝构造函数只有一个参数就是本类的引用. 注意 ...
- CODING 2.0 服务升级:一站式服务体系助力企业研发上云
近日,CODING 在 KubeCon 2019 上海站上正式推出了 DevOps 的一站式解决方案: CODING 2.0,除了进行 产品 及 产品理念 的升级,还对用户服务进行了整体升级,主要涵盖 ...
- 44-创建 Machine
对于 Docker Machine 来说,术语 Machine 就是运行 docker daemon 的主机.“创建 Machine” 指的就是在 host 上安装和部署 docker.先执行 doc ...
- vim简单操作命令
vim简单操作命令: 开启编辑:按“i”或者“Insert”键 退出编辑:“Esc”键 退出vim:“:q” 保存vim:“:w” 保存退出vim:“:wq” 不保存退出vim:“:q!” 查看当前系 ...
- [PHP] php使用event扩展的io复用测试
先要安装event扩展,这样才可以使用libevent的事件机制 pecl install event 测试代码 //连接重用 //创建资源流的上下文 $context=stream_context_ ...
- django重点url,视图函数,模板语言
django重点url,视图函数,模板语言url 1.django重点url无命名分组:re_path() 2.url第一个参:url未命别名分组就不需要views中参数一定,若命别名(?P<y ...
- python之字符串的拼接总结
加号连接 1.通过+号连接起来 逗号连接 2.通过都好连接起来 但是,这里值得注意的是,只能用于print打印,赋值组操作会生成元组 直接连接 3.直接连接中间有无空格均可 %连接 在python2. ...