一、什么是CharlesIOS
CharlesIOS是一款Windows、Mac以及IOS平台上的网络抓包和调试工具,被全球范围内的开发者广泛使用。它可以截获移动设备和服务器之间的通信,方便对数据进行监控和调试。
二、CharlesIOS的功能特点
1、HTTP/HTTPS捕获:Charles可以捕获HTTP和HTTPS的请求和响应,甚至可以解密HTTPS报文中的内容,方便我们进行网络调试和分析。
2、Rewrite功能:使用Charles的Rewrite功能可以将服务器返回的内容进行篡改,比如说可以将JSON格式数据以XML的形式返回,方便移动端开发人员进行接口兼容性的测试。
3、Map本地资源:如果本地没有某个资源,可以使用Charles将该资源映射到本地,防止开发测试受到影响。
4、延迟和限速:Charles可以模拟网络延迟和在网络速度变化时的表现,让开发人员更好地进行网络性能测试。
5、Badges功能:Charles支持自定义标记,方便我们对不同的请求进行标记,方便开发人员进行统计分析。
三、基本使用方法
安装好Charles之后,需要进行一些配置才能正常使用。
1、将安装证书: Charles默认会生成一个CA证书,需要将该证书导入到手机或者电脑中,才能截获HTTPS协议的请求。
打开Charles界面 -> Help -> SSL Proxying -> Install Charles Root Certificate
2、开启代理:在手机或电脑的网络设置中开启Charles代理。
设置代理IP地址和端口号
3、检查网络是否被截获:如果网络还没有被截获,可以在Charles的界面中,查看是否有网络请求。
以上就是Charles的基本使用方法,接下来我们可以针对不同的需求,进行一些高级设置。
四、进阶技巧
1、将Charles代理到真机上
当我们需要对真机上的应用进行抓包时,可以通过Charles代理到真机上。
1、打开Charles -> Proxy -> Proxy Settings -> Enable Transparent HTTP Proxying。
2、连接同一WIFI的电脑上在浏览器中打开http://charlesproxy.com/getssl,下载并安装相应证书。
3、找到手机的WIFI设置,手动设置HTTP代理为Charles所在电脑的IP、端口号为8888。
4、打开手机中需要测试的应用,即可看到对应的网络请求和响应。
2、使用Rewrite功能
假设后台接口返回数据中有特殊字符,我们需要将这些特殊字符去掉。
1、打开Charles -> Proxy -> Rewrite Settings -> Add。
2、在弹出的窗口内填写要被替换的正则表达式和要替换成的内容,点击ok即可。
3、修改接口返回数据
假设我们想要在数据返回前添加一些附加信息,比如:对数据进行加密/解密,或是进行签名认证等操作。
1、打开Charles -> Tools -> Map Local。
2、点击添加,填写本地文件路径,一般是json格式文件。
3、找到待拦截的请求,选择 Map Remote,将请求映射到本地的文件。
4、修改本地的json数据,保存即可。
4、使用Charles进行接口Mock测试
如果我们的后端服务尚未开发完成,我们可以使用Charles进行Mock测试。
1、打开Charles -> Tools -> Map Local。
2、点击添加,填写接口地址和Mock数据。
3、找到希望进行Mock测试的接口请求,选择 Map Remote即可。
5、Charles实现限速
我们可以通过Charles来模拟不同网络环境条件,包括网络延迟、抖动等,以便在开发之前进行充分测试。
1、打开Charles -> Proxy -> Throttle Settings。
2、勾选 Enable Throttling,并设置相关参数即可。
五、总结
Charles作为网络抓包和调试工具,具有完善的功能和广泛的应用场景。几乎每一个有网络请求的应用,都可以被Charles所监测到。如果你是一名全能编程开发工程师,那么Charles就是你不可缺少的一款工具。