简述

在测试app的时候,比如:页面无法展示内容(由服务端接口返回值提供),往往就需要去定位问题,找到所抛出的请求是否异常,pc浏览器和mac浏览器访问是可以通过平台提供的软件(Charles&fiddler)来实现,那么如何抓到手机抛出的请求呢?实现抓取手机网络请求

这里分别介绍两种工具在两种平台下的使用方法
- (2015/12/02 更新 加入抓取https的设置方法)

①、Pc windows+fiddler(Http&Https)

条件:

第一种为适用于windows平台,适用fiddler来实现抓取手机网络请求。
1、windows安装fiddler
2、pc和手机需要在同一局域网下(二级路由也没有问题)


第一步:安装设置fiddler代理

Fiddler --> Tools --> Fiddler Options --> connections


 

ios 抓包 推送 ios手机抓包_HTTP

 




 



在Fiddler listen on port中填入一个自定义4位数端口号(不能以0开头)
勾选选项“Allow remote computers to connect”






 



至此fiddler的代理设置已完成(设置完成后不要关闭fiddler)



第二步:手机设置连接fiddler代理

这里以ios 设备为例;(安卓也是一样的)
打开手机的WIFI设置,连接局域网可用WIFI;点击已连接WIFI后的 i 标志;进入网络代理设置
设置HTTP代理为手动,填入fiddler所在的pc机ip地址,以及设置的Fiddler listen on port并保存



ios 抓包 推送 ios手机抓包_SSL_02


 




 




!设置截获Https请求(Fiddler)

依次找到菜单:FiddlerOption --> https标签
1.勾选 Captrue HTTPS CONNECTs和 Decrypt HTTPS traffic选项



 




 

ios 抓包 推送 ios手机抓包_ios 抓包 推送_03


2. 手机安装fiddler信任证书以iPhone为例,安卓同理

安卓和IOS均要使用手机系统浏览器,然后输入代理ip和端口号来访问你的fiddler代理ip:

如下图(代理fiddler的pc的ip是192.168.101.34,端口号8888)

 


ios 抓包 推送 ios手机抓包_ios 抓包 推送_04

 


如果代理成功的话,会看到以下页面,如果不成功请检查ip和防火墙

 


ios 抓包 推送 ios手机抓包_ios 抓包 推送_05

 


点击“FiddlerRoot certificate”会跳转到系统证书安装确认页面:

 


ios 抓包 推送 ios手机抓包_SSL_06

 


<b>安装完成之后,再次访问指定网页,所有的https请求的返回值你都可以看得到了~</b>

 


②、Mac+Charles

条件:

第二种为适用于mac os平台,使用charles来实现抓取手机网络请求。1、mac os 安装charles(charles工具试用期是30天的,教程自行度娘或者call me)
2、mac os 和手机需要在同一局域网下 (二级路由无效)


第一步:设置Charles代理

1、运行Charles程序,设置port
Proxy --> ProxySettings --> Proxies --> httpProxy


 

ios 抓包 推送 ios手机抓包_SSL_07

 


 

ios 抓包 推送 ios手机抓包_iOS_08

 


 


 


 


 



第二步:获取mac os当前ip

按住option键,点击右上角的wifi图标即可看到IP:


 


ios 抓包 推送 ios手机抓包_HTTP_09

 


 


获取当前ip地址



第三步:设置手机HTTP代理

3、打开iOS设置,进入当前wifi连接,设置HTTP代理,将服务器填为上一步中获得的IP,即192.168.199.147,端口填8888:


 

ios 抓包 推送 ios手机抓包_iOS_10

 

 


 


<b>结尾:在不使用的时候需要将手机中得HTTP代理关闭,否则pc或者mac关机或者关闭软件后,手机无法正常上网!</b>


!设置截获Https请求(Charles)

如果不进行下面的设置,https的reqeust和response都是乱码,设置完之后https就可以抓包了。

Mac端安装证书操作:

点击Charles菜单的help->SSL->proxying->install charles root certificate


ios 抓包 推送 ios手机抓包_iOS_11


 


mac电脑安装信赖证书


<b>在到电脑的钥匙串中信赖刚刚的证书:</b>


 

ios 抓包 推送 ios手机抓包_HTTP_12

 


mac电脑安装信赖证书


手机端安装证书操作:

下载 Charles证书解压后导入到iOS设备中(将crt文件作为邮件附件发给自己,再在iOS设备中点击附件即可安装;也可上传至百度之类的网盘,通过safari下载安装)

电脑端操作:

1、在Charles的工具栏上点击设置按钮,选择Proxy Settings…
切换到SSL选项卡,选中Enable SSL Proxying。(别急,选完先别关掉)
2、SSL选项卡的Locations里填写要抓包的域名和端口,点击Add按钮,在弹出的表单中Host填写域名。比如填api.baidu.com,Port填443


ios 抓包 推送 ios手机抓包_iOS_13

 


 


mac端ssl设置


!!!信任证书

很多小伙伴在设置好代理,装好证书之后依然会出现https请求无法解包的情况!经过一段时间研究,找资料发现原来仅仅只是需要一个小设置即可!
设置-通用-关于本机-证书信任设置 , 打开相应证书的开关即可


ios 抓包 推送 ios手机抓包_SSL_14

 


 


证书信任设置


打开对应证书开关


 

作者:优雅的猪