charles抓包,证书都配置好了,还是无法抓包
通常情况下,打开charles,然后菜单栏选择Proxy -> Mac OS X Proxy 即可,接着所有访问的请求都可以在charles中看到。
下面是抓不到请求的原因:是我系统设置了代理导致。
因为CloudSS是使用自动代理配置这个,这样就导致了charles无法抓包(这种情况下可以真机上抓包,因为真机不会有自动代理配置.而模拟器和浏览器都是在Mac系统下)
看来让无法与charles共存
看第二条
您需要取消勾选按钮,以免charles的web代理和安全的web代理不会生效。
Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现网络封包的截取和分析.所以使用Charles的第一步是将其设置成系统的代理服务器.上图一就是将Charles设置成系统代理.
需要注意的是,Chrome和Firefox浏览器默认并不使用系统的代理服务器设置,而Charles是通过将自己设置成代理服务器来完成封包的截取,所以默认情况下无法截取Chrome和Firefox浏览器的网络通信内容.可以直接将代理服务器设置成127.0.0.1:8888
Charles提供两种封包视图
分别为Structure 和Sequence
Structure视图将网络请求按访问的域名分类.
Sequence视图请求按访问的时间排序.
Filter功能是输入关键字来快速筛选出URL中带指定关键字的网络请求.
过滤网络请求
只监控向指定目录服务器上发送的请求.
方法一:在主界面的中部Filter栏中填入需要过滤的关键字,例如我们的服务器的地址是:http://baidu.com那么只需要在Filter栏中填入baidu即可.
方法二:在Charles的菜单栏选择”Proxy” -> “Recording Settings”,然后选择Include栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号.这样就可以只截取目标网站的封包了
方法三:在想过滤的网络请求上右击,选择”Focus”,之后在Filter一栏勾选Focus一项.
iPhone上抓包
Charles上的设置
在Charles的菜单栏上选择”Proxy”->”Proxy Setting”,填入代理端口8888,并勾选”Enable transparent HTTP proxying”
iPhone上的设置
首先我们需要获取Charles运行所在电脑的IP地址,Charles的顶部菜单栏”Help” -> “Local IP Address”,即可在弹出的对话框中看到IP地址.
模拟慢速网络
在Charles菜单栏上,选择”Proxy” -> “Throttle Setting”在之后弹出的对话框中,勾选”Enable Throttle”,并且可以设置Throttle Preset的类型. 如果只想模拟指定网站的慢速网络,可以再勾选上”Only for selected hosts”,然后在对话框的下半部分设置中增加指定的hosts项即可.
修改网络请求的内容
在修改的url上右击选择Edit
我们可以修改该请求的任何信息,包括URL地址,端口,参数等,之后点击”Execute”即可发送该修改后的网络请求.
给服务器做压力测试
我们可以使用Charles的Repeat功能来简单地测试服务器的并发处理能力.在url右击,选择Repeat Advanced菜单项,接着就可以在弹出的对话框中,选择打压的并发线程数Concurrency,及打压次数,iterations,确定后开始打压.
修改服务器返回内容
Charles提供了Map功能,Rewrite功能以及Breakpoints功能,都可以达到修改服务器返回内容的目的.三者在功能上的差异是
1:Map功能适合长期地将某一些请求重新定向到另一个网络地址或本地文件.
2.Rewrite功能适合对网络请求进行一些正则替换.
3.Breakpoints功能适合做一些临时性的修改.
Map功能
Charles的Map功能分为Map Remote和Map Local两种,其中Map Remote是将指定的网络请求重定向到另一个网址请求地址,Map Local是将指定的网络请求重定向到本地文件.
对于Map Remote功能,需要分别填写网络重定向的源地址和目的地址,对于不需要的条件可以留空.可以把测试服务器的请求重定向到线上服务器的请求只填host就可以.
反向代理
Charles的反向代理功能允许我们将本地的端口映射到远程的另一个端口上.
设置外部代理,解决与软件的冲突
Charles的原理是把自己设置成系统的代理服务器,但是在中国,由于工作需要,常常用Google搜索,所以大部分程序员都有自己的软件,而这些软件的基本原理,也是把自己设置成系统的代理服务器,来做到透明的.
为了使两个可以和平共处,我们可以在Charles的Exteral Proxy Settings中,设置的代理端口及相关细心.同时,我们也要关闭相关软件的自动设置,使其不主动修改系统代理,避免Charles失效