开发工具iOS 实际项目出现的问题

Charles 抓包工具在Mac上的使用

2017-11-20  本文已影响789人  jamalping

简介

Charles是目前最强大的http调试工具之一,在网络开发中使用它作为分析工具,可以很大程度上提高我们的开发效率,

Charles是收费软件,可以试用。有条件的建议用正版,当然天朝也不乏破解版。

官方免费试用版V4.2

V3.11.4软件和破解包

安装

下载好后,解压打开,然后右击、显示包内容。如图

显示包内容

将如下文件夹中的jar包替换为我们破解文件夹中的jar包:

jar包路径

这样就破解了,然后就能happy的使用了

配置

安装证书

Charles安装证书1

按上面指示流程打开 钥匙串访问,搜索 charles 可以看到刚才安装的证书,查看证书状态是否已经被信任(名称有红色标记)。

image.png

添加证书时,选择始终信任

在Mac上抓取网络请求

对于Mac系统而言,打开charles之后,默认就已经对系统进行了代理,如果没有,则需要在菜单栏的Proxy上勾选上Mac OS X Proxy。

image.png

这时候就能抓取Mac的网络请求了

在移动设备上进行抓包

在移动设备上抓取网络请求,我们的移动设备必须和电脑在同一网段:

1、电脑和移动设备同时连接同一网段的网络。

2、是电脑共享wifi出来,然后用移动设备区连接,

设置Http代理

设置HTTP网络请求的端口号为8888并设置为可用的。如下图:

端口号设置

移动设备的设置:

image.png

如图:

设置wifi的HTTP代理为手动,服务器地址为Mac的ip 地址(这个地址就不用说怎么找了吧)

端口号为8888(这个端口号就是之前在Charles上设置的)

SSL

如果要抓取有SSl协议的网络请求,这时候我们还需要安装一个证书

方法如下:

iOS设备

将iOS设备设置为在“设置”应用程序> Wifi设置中将Charles用作其HTTP代理。
打开Safari并浏览到https://chls.pro/ssl。Safari会提示你安装SSL证书。
如果您使用的是iOS 10.3或更高版本,请打开Settings.app并导航至常规>关于>证书信任设置,然后查找Charles Proxy证书,并将其打开以启用对其的完全信任(iOS中有关此更改的更多信息10)。
现在您应该可以使用SSL Proxying与Charles访问SSL网站。
Charles在3.11.4发行版中支持App Transport Security(ATS)。

iOS模拟器

退出你的iOS模拟器。启动Charles并转到帮助菜单。选择“SSL代理>在iOS模拟器中安装Charles Root证书”项目。这将安装您的查尔斯根证书到您的所有iOS模拟器。现在,当您启动iOS模拟器时,您应该可以使用SSL Proxying与Charles访问SSL网站。

SSL 协议设置:

在proxy菜单中选中proxy Setting。 选中SSL Proxy选项卡。点击add添加,然后填写服务器地址和端口号。再选中Enable SSL Proxy 选项。

注意: 如果iOS模拟器上抓不到请求包,重启模拟器即可。

Charles的更多应用

过滤网络请求

有时候我们只想抓取某个主机的网络请求(比如测试服务器),我们可以设置过滤网络,在Proxy菜单下的Recording Setting中选择include标签,可以在里面添加一个白名单,这样Charles就只抓取这个主机下的请求了

image.png

如上图:点击Add就出现下图

image.png

几个字段的含义:

Protocol : 协议(Http或https)

Host : 主机(服务器)地址

Port : 端口号

Path : 路径

模拟限速网络

很多时候,我们需要测试在网络不佳时应用请求的相关数据,我们可以模拟设置限速网络,在Proxy菜单中的Throttle Settings中将,Enable Throttling勾选,并可以在下面进行网路设置,only for selected host可以设置一个指定的主机访问进行限制网络。

修改网络信息,多次请求

在测试接口时,有时候我们需要反复进行不同参数的接口请求,Charles也支持我们进行请求参数的修改和多次请求,在请求上点击右键,现则edit:

image.png

如图:其中的参数,请求类型等我们都可以修改,之后点击execute进行重新请求

批量请求选择repeat advanced...

image.png
iterations:10   //请求次数

concurrency:2   //请求的并发数

show results in new session //新建一个session窗口

delays  //请求延迟
上一篇下一篇

猜你喜欢

热点阅读