1. Repeat Advanced,重放、修改请求
在请求中右键,可以对该请求进行复制编辑、重放。如下图,可以设置重放次数、并发
Edit:编辑修改功能,可以编辑修改任意请求信息,比如表单信息、cookie等,修改完毕后点Execute就可以发送一个修改后的请求数据包。
2. include、exclude包含排除指定域名、请求
Proxy | Recording Settings
include与主界面中的Filter的不同点是,Charles不会抓取不被包含的请求,而filter只是不展示不符合条件的。Charles实际已经抓取,去掉过滤条件之后仍会显示。
3. throttling限流设置
有时候开发中需要测试用户在网络情况比较的差的时候应用的表现情况,可以使用Charles限流设置,设置宽带、延迟等,并可以限制只对哪些hosts进行限流设置。
Proxy | Thorttle Settings中设置
4. breakpoints设置断点
对于一些在发往服务器之前想要修改部份参数的特殊请求,或者在服务器响应完成之后需要修改响应信息的,可以通过Charles的断点功能,
具体可以参考:charles通过breakpoints修改web请求
5. No Caching Settings
这样对于每个请求会在request中添加两个Header:
Pragma:no-cache
Cache-Control:no-cache
但是否起作用需要服务器对这两个Header支持才行。
6. DNS Spoofing Settings
一般开发流程中,在上线之前都需要在测试环境中先行进行验证,而此时手机客户端请求的域名是不太容易改变的,因此可以通过设置dns方式把域名转发到测试机上,具体设置Tools | DNS Spoofing Settings
比如要把所有包含coolnull.com的域名转到10.0.0.75的服务器上,可以设置如下:
7. Map Local Settings
对于前端开发来说,对html页面,js或者css等进行调整后需要配置线上的接口来查看最终样式,直接部署到生产环境可能会有风险,并且也不方便随时修改,可以使用Map Local Settings的方式,把线上的静态资源映射到本地:
这样当请求静态的html、js和css等资源的时候会使用本地的信息,方便及时看效果。
8. SSL
Charles不仅能够抓取http协议的包,也能抓取https协议的包,但是由于https是经过加密的,因为抓取的包中的内容是以密文方式展现的,通过配置Charles的SSL可以方便的以明文查看https协议传输的内容。
Proxy | Proxy Settings| SSL
对于PC端浏览器需要添加Charles的证书到信任列表,而对于手机端则需要下载Charles的证书,具体可以参考我的这篇:charles抓取https请求
附录:
除了以上功能,Charles还支持Reverse Proxy, Port Forwarding端口转发,访问控制,cookie清除,Map Remote,黑名单等功能,且 charles不仅支持Http代理,也支持SOCK代理。这样就可以支持对所有协议的进行抓包。抓socket这个倒是比较少用