加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

基于iOS的Charles抓包实践

发布时间:2019-04-02 02:12:40 所属栏目:优化 来源:360技术
导读:副标题#e# 在日常开发中,我们无法看到应用程序与服务器之间发送和接收的内容,没有这种可见性,我们在确定故障的确切位置时会非常困难且耗时。而Charles是一个运行在PC上的Web代理,我们将应用程序配置为通过Charles访问网络,便可以在Charles上记录并显示

在iPhone浏览器中访问 http://charlesproxy.com/getssl 可以下载证书并安装。此地址一般不会变化,可以在Charles 菜单栏 -> Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser中查看最新的官方证书下载地址。图示如下:

基于iOS的Charles抓包实践

基于iOS的证书信任机制,在安装完成并信任证书后,需要到iPhone设置 -> 关于本机 -> 证书信任设置 中启用根证书。图示如下:

基于iOS的Charles抓包实践

这样,就可以使用Charles中抓包iPhone发出的HTTPS请求并预览明文数据了。

抓包模拟器上的HTTPS请求需要点击Install Charles Root Certificate in iOS Simulators安装证书。

(3) 启动抓包SSL权限

在Charles菜单栏 -> Proxy -> SSL Proxying Settings中勾选Enable SSL Proxying,然后在Locations中添加需要抓包的Host和Port即可。图示如下:

基于iOS的Charles抓包实践

也可以在抓包界面,右键点击某条/组请求,在弹出的选项列表中点击Enable SSL Proxying启用权限。图示如下:

基于iOS的Charles抓包实践

四、请求断点

在Charles的请求预览界面中,右键点击某条/组请求,在弹出的选项列表中有Breakpoints选项。图示如下:

基于iOS的Charles抓包实践

点击Breakpoints后即为该请求设定了断点。默认情况下,在该请求的Request / Response过程都会受断点控制,即在Request数据发送到的服务端之前会被暂停,在Response数据发送到客户端之前也会被暂停。可以从Charles菜单栏 -> Proxy -> Breakpoint Settings中编辑断点的参数。比如,只需要对Response过程加断点,可以将Request的勾选状态取消。图示如下:

基于iOS的Charles抓包实践

在断点状态下,可以预览和修改请求的中间数据,之后点解Execute按钮即可继续执行请求。

五、数据修改

Rewrite和Breakpoint Editing都可以起到修改请求数据的作用。

1. Rewrite

在Charles菜单栏 -> Tools -> Rewrite中可以开启Rewrite功能,点击Add按钮可以添加一条设置,并可以在右侧的Locations和Rules中分别添加要Rewrite的请求路径和Rewrite规则。图示如下:

基于iOS的Charles抓包实践

Rewrite适合应用于对请求的批量和长期修改,对请求数据影响较大(测试结束后经常忘记去掉规则)。所以,在一些轻量级的数据修改场景中,我经常结合Breakpoint功能修改数据。

2. Breakpoint Editing

结合断点功能,可以很好的实现临时修改请求的Request / Response数据的需求。为某条请求设置断点后,当该请求发生时,会自动跳到断点窗口。点开Edit Request / Response界面,可以看到中间信息,选择合适的数据格式(HTML、Json等)进行修改。修改完成后,点击Execute按钮即可在终端上看到修改后的的效果。图示如下:

基于iOS的Charles抓包实践

基于iOS的Charles抓包实践

六、请求重发

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!