1.下载charles
可以去charles官网下载,下载地址:http://www.charlesproxy.com/download/ 根据自己的操作系统下载对应的版本,然后进行安装,然后打开charles工具(官网版是收费的没预算的朋友可以选择破解版,自行百度)
2.设置代理(记住手机跟电脑要在同一个网络,用的同一个路由器)
1).查看默认端口 Proxy->Proxy Settings 在这个页面会看到HTTP Proxy的默认端口是8888 我们不需要修改,只需要知道有这个值就行
2).查看当前电脑的ip 例如我这里的是:192.168.9.129
3).知道了默认端口跟ip地址,我们就可以手机上设置代理了。设置步骤我录制了gif动画。(我用的是genymotion模拟器,真机也是一样的)
完成了以上两个步骤就可以抓到http请求的数据了,效果图如下:
接下来讲解如何抓取https协议的包,如果你没有这个需求,请不要继续浏览下面的内容
3.设置charles ssl代理
Proxy->SSL Proxy Settings 弹出一个ssl代理设置界面
1).Enable SSL Proxying复选框打上勾
2).添加你想要的设置代理的域名,端口默认443(这里的代理地址是你想要抓到的https,只有填写了之后才可以看到请求和响应)
设置过后效果图如下:
4.手机下载ssl证书
1).Help->SSL Proxying ->Install Charles Root Certificate on a Mobile Device or Remote Browser...
会弹出一个提示框,如下显示:
浏览器输入这个地址即可下载证书,记住要用Android自带的浏览器. 地址是:http://charlesproxy.com/getssl
2).然后按照他的提示安装证书即可.
做完第三步跟第四步就可以抓包https数据了.如果还有问题请留言。。。下面是我抓包截图。
过滤
在 Charles 的菜单栏选择 Proxy->Recording Settings
,然后选择 Include
栏,选择Add
,然后填入需要监控的协议,主机地址,端口号,这样就达到了过滤的目的。如下图:
![](http://upload-images.jianshu.io/upload_images/465386-5a93f2db585b00e7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
还有一种方法就是在一个网址上右击,选择Focus
,然后其他的请求就会被放到一个叫Other Host的文件夹里面,这样也达到了过滤的目的。
![](http://upload-images.jianshu.io/upload_images/465386-86fda08ddb5e7fd3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
断点
断点的功能搞开发不会不知道,在Charles发起一个请求的时候,我们是可以给某个请求打一个断点的,然后来观察或者修改请求或者返回的内容,但是在这过程中药注意请求的超时时间问题。要针对某一个请求设置断点,只需要在这个请求网址右击选择Breakpoints就可以断点某一个请求了。
![](http://upload-images.jianshu.io/upload_images/465386-b2ff9d4778cf10f7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
模拟网速慢
有时候在开发的时候我们想要模拟一下网络慢的情况,这时候Charles他是可以帮助到你的,在Proxy
->Throttle Setting
,然后选择Enable Throttling
,在Throttle Preset
下选择网络类型即可,具体设置你可以自行拿捏。
![](http://upload-images.jianshu.io/upload_images/465386-1b8022243dcbeb0d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
请求重定向
请求重定向的作用是什么呢?开发中一般都是测试环境,如果我们想对比一下和线上版本的区别的话,可以讲测试的请求重定向到正式环境下。在选择 Tools
->`Map Remote下:
![](http://upload-images.jianshu.io/upload_images/465386-8e0cab0dc858d6f5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
内容替换
有时候我们会测一下请求的参数不同会带来不同的返回结果以测试是否达到业务需求,或者需要不同的返回结果来验证我们对数据的处理是否正确,这时候需要后台的同事配合,但是有了Charles,我们可以自己把控接口返回来的内容,比如数据的空与否,数据的长短等等。在Tools
->Rewrite Settings
下:
![](http://upload-images.jianshu.io/upload_images/465386-9033945516988214.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
声明:本文为博主学习感悟总结,水平有限,如果不当,欢迎指正。如果您认为还不错,欢迎转载。转载与引用请注明作者及出处。