移动APP网络问题经常需要通过抓包来分析,下面把几种抓包方式总结一下。
一、 通过tcpdump
以android平台为例介绍tcpdump抓包
1.先下载tcpdump
2.把tcpdump push进手机:adb push tcpdump /data/local/
3.通过adb shell下修改tcpdump使用权限:
adb shell
chmod 6755 /data/local/tcpdump
4.直接在adb shell下,通过命令进行抓包
cd /data/local/
./tcpdump -p -vv -s 0 -w /sdcard/capture.pcap
5.操作完想停止抓包,按ctrl+c。
6.随后想分析抓到的数据包,可以把刚才的capture.pcap拷贝到电脑,用wireshark打开就可以看到刚才抓到的数据包了。
二、 电脑做wifi热点,手机连上后电脑上使用wireshark抓包
该方法手机无须root,并且适用于各种有wifi功能的手机(IOS、android等)、平板等。只要电脑的无线网卡具有无线承载功能,就可以。方法如下:
1. 把电脑的网络做为热点,小白用户可以使用wifi精灵等工具,不想安装辅助工具的,也可以通过命令来开启wifi热点(命令开启可以参考http://jingyan.baidu.com/article/335530da4f774019cb41c3eb.html
)
2.开启wifi热点后,被测手机连接到该热点;
3.启动wireshark,选择做为热点的网卡,点击start开始抓包;
4.操作手机,可以抓取到手机所有与网络交互的数据包,如需停止,直接点击wireshark的stop即可。
三、使用代理的方式,用fiddler来抓取
此方法只适应于抓取http。此方法的最大优点是,可以拦截发出或者收到的http,可以修改http的request和response数据。因此用此方法可以模拟一些特殊场景(如包无响应、模拟一些很难出现的错误码等)。
此方法最好有一台拥有无线网卡的电脑。
1.电脑和手机连接到同一个局域网下(如电脑和手机连接到同一个wifi下)
2.电脑打开fiddler,在fiddler下,Tools-fiddler options,在connections选项卡下设置监听的端口号和勾选“allow remote computers connect”,点击“ok”

3.手机在wifi的选项下,选择代理为“手动”,然后主机名填上电脑的IP地址,端口号填上刚才设置的“8888”后,保存。
4.设置完毕之后,直接操作手机就可以在电脑的fiddler上看到http码流。
原创作品,转载请注明出处:http://www.cnblogs.com/xieweijia/articles/4353316.html
浙公网安备 33010602011771号