加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

基于iOS的Charles抓包实践

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

在日常开发中,我们无法看到应用程序与服务器之间发送和接收的内容,没有这种可见性,我们在确定故障的确切位置时会非常困难且耗时。而Charles是一个运行在PC上的Web代理,我们将应用程序配置为通过Charles访问网络,便可以在Charles上记录并显示发送和接收的所有数据,进而可以大大提高调试程序的效率。

从下图可以看出Charles的角色:

Charles的角色

Charles有以下几个常用功能:

  • 请求预览:通过分组或序列视图预览和过滤请求数据;
  • 请求抓包:抓取HTTP和HTTPS的请求数据和响应数据;
  • 请求断点:拦截指定的请求或响应,预览中间的数据;
  • 数据修改:修改请求数据和响应数据以配合数据测试;
  • 请求重发:指定请求重复发送,以测试后端功能和性能;
  • 网速模拟:设置网速延迟,模拟手机上2G/3G/4G网络;

由于Charles的功能很多,很难在文章中详尽介绍,所以作者以在项目中对Charles的使用为切入点,对最常用、最有用的几个功能进行介绍。

一、安装Charles

Charles是收费软件,有30天的免费试用期限,

之后每使用30分钟会被强退一次,重启后可继续使用。

从Charles官网可以获取Charles安装包。

二、请求预览

Charles启动后,就运行在抓包模式。由于Charles会自动配置PC浏览器的代理,所以,随意打开一个网页(只要有网络请求即可)即可预览到请求信息。

PS:如果使用插件为浏览器设置了独立代理,请关闭插件或者设置成系统代理。

Charles提供了Structure和Sequence两种预览模式。

Structure以域名对请求进行分组,,可以很方便地预览同一域名下的请求数据,也方便于日常开发中对某一服务接口的分析和处理。图示如下:

基于iOS的Charles抓包实践

Sequence以时间顺序显示请求信息,可以最直接的预览请求信息。在此模式下,可以使用Filter过滤请求,针对性分析。图示如下:

基于iOS的Charles抓包实践

在两种模式下,都可以通过切换标签(Overview、Request、Response等)预览不同类型的请求信息。在最常用的Request和Response标签下,还可以通过切换子标签(Headers、Cookies、Text等)预览对应标签详细内容。图示如下:

基于iOS的Charles抓包实践

三、请求抓包

使用工具栏的白圆红点按钮(快捷键是“Command+R”)可以使Charles在抓包(Start Recording)和不抓包(Stop Recording)之间切换。使用此按钮,在需要调试时再打开抓包功能可以有效减少干扰信息,而快速抓取到需要调试的请求。

对从手机(以iPhone示例)发出的请求进行抓包,需要保证iPhone和PC工作在同一局域网内。

第1步:获取PC的IP地址

在Charles菜单栏 -> Help -> Local IP Address中可以查看PC的IP地址。图示如下:

基于iOS的Charles抓包实践

也可以在Mac终端使用命令ifconfig en1查看PC的IP地址。图示如下:

第2步:配置iPhone代理

在iPhone的 设置 -> 无线局域网 -> 局域网信息(i) -> 配置代理 -> 手动中配置代理,服务器输入框中填写PC的IP地址,端口输入框中填写Charles的代理端口(一般是8888)。图示如下:

具体的端口可以从Charles菜单栏 -> Proxy -> Proxy Settings中查看。图示如下:

iPhone代理配置完成后,Charles会弹出连接提示框,点击Allow之后即可使用Charles对从该iPhone发出的请求进行抓包了。图示如下:

第3步:抓包HTTPS请求

在配置iPhone代理完毕后,就可以通过Structure或者Sequence窗口预览HTTP请求的数据了。但由于HTTPS请求被加密过,预览请求时只能预览到乱码数据。要预览到HTTPS请求的数据明文,需要PC和iPhone安装证书授权。

(1) PC安装证书

(编辑:衡阳站长网)

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

热点阅读