1.mac本,安装之后,勾选了macOS proxy 后浏览器就不能访问网络
原因:Charles 默认的8888端口被占用,我改为8088后即可连接网络,并拦截到浏览器请求。
解决:proxy->proxy Settings ,修改 port。
勾选了SOCKS proxy,可以捕获到长连接
2.不能抓取移动端
原因:正常来说应该是会提示是否抓取,但我的不知道为什么不提示
解决:proxy->access control Settings 修改访问控制,add 0.0.0.0/0。
3.不能抓取https
原因:需要在mac ,移动端分别 下载证书
解决:mac 通过Charles下载证书,并始终信任,
移动端先通过统一wifi添加代理,ip为help->local ip address ,端口为proxy port(前提条件)
然后访问chls.pro/ssl 下载证书并安装,并找到证书,选择信任。
最后启用https捕获,在charles的 Proxy选项选择SSL Proxy Settings设置ssl代理。点add添加需要监视的域名,支持 *号通配符,端口一般都是443:
5.安卓手机无法下载证书
问题:安卓手机下载证书之后提示无法打开
解决:可通过下面路径安装:
1.1 打开 “设置” -> “WLAN” -> “高级设置” -> “安装证书”
1.2 打开“设置” -> “更多设置” -> “系统安全” -> “加密与凭据” -> “从存储设备安装”
tips:提示给证书命名,随意命名即可
问题:安卓手机通过自带浏览器下载证书,安装时提示无可用证书(特别是小米手机)
解决:下载非自带浏览器,访问chls.pro/ssl,绘制锁屏密码,给证书命名,安装证书
可以在pc端保存证书,然后通过QQ微信或者其他传送文件的方式把pc端保存的证书存储到手机,再用以上的方法安装证书即可。
5.代理转发
问题:在客户端不发版的情况下,测试后端代码
有时候我们服务端线上版本有bug,你在本地修改程序后,需要模拟实际的线上环境,来验证程序的正确性,最笨的方法就是让客户端修改一下APP的调用地址到你本机,然后重新打一个版本供你模拟测试,这样虽然可以,但每次遇到bug都要这么做的话,那效率极其低下,甚至可能本地不好复现。
还有不强制更新的情况, 可以把请求代理到本地,自测是否兼容,是否可用
可以在不提交代码的情况下测试后端接口,减少提交代码的次数
解决:tool->map remote 把请求代理到localhost
6.拦截不到localhost流量
问题:Charles默认是不抓取localhost信息的,所以无论是浏览器访问localhost,还是把远程地址代理到localhost,请求都不会出现在列表里。
解决:连接到http://localhost.charlesproxy.com/。这指向IP地址127.0.0.1,因此它应该与localhost完全相同,但它的优势在于它将通过Charles。无论Charles是在跑,还是在使用Charles,这都会有效。如果您使用其他端口,例如8080,只需像往常一样添加它,例如localhost.charlesproxy.com:8080。然后再修改 Recording setting->include,设置为记录localhost中的信息。
7.改变Responses响应结果,测试特殊情况
问题:有时候一些特殊情况,造数据非常困难
解决:右键map local,添加响应文件,查看客户端效果
8.修改Requests请求参数,测试版本兼容问题
问题:客户端经常会有非强制更新的版本,我们接口需要分版本返回数据,测试在客户端下是否正常
解决:右键->compose,修改请求参数,点击Execute执行修改后的参数,Revert查看响应结果
参考文档:https://www.jianshu.com/p/993bc794138d
https://www.jianshu.com/p/993bc794138d