提bug是需要测试先定位问题的,那么抓包就很重要了,不止是普通的抓取http https的包来判断接口数据问题,还需要会抓socket的包,确定接口是否有问题。
socket像聊天一样
有一说一,IOS的方法二只能抓测试的app,正式的抓不到
一 了解socket
Socket(套接字)是一种提供不同计算机之间通信的机制。它允许在网络上的不同设备之间传输数据。Socket是一种抽象层,为应用程序提供了一组接口,使它们可以通过网络进行通信。
具体来说,Socket 提供了一种在网络上发送和接收数据的方式,它通过一个端口(port)和一个 IP 地址来标识网络上的特定设备。Socket 通常用于实现客户端-服务器模型,其中一个应用程序充当服务器,等待其他应用程序(客户端)连接并交换数据。
Socket通信可以在同一台计算机上的不同进程之间进行,也可以在网络上的不同计算机之间进行。在网络编程中,开发人员可以使用不同的编程语言(如C、Python、Java等)的Socket API来创建网络应用程序。
Socket通常分为两种类型:流套接字(Stream Socket)和数据报套接字(Datagram Socket)。流套接字提供一个可靠的、面向连接的通信,而数据报套接字则提供无连接的通信,数据通过单个数据包进行传输。
总体而言,Socket是网络编程中的基本构建块,允许应用程序通过网络进行双向通信,传输数据和信息。
二用Charles抓socket的包
2.1安装Charles及安装手机端的证书 抓http 和https包的设置方法
就不写了 可以看另一篇关于使用Charles之路
2.2 IOS 抓socket(方法一)
2.2.1手机WiFi先配置好Charles代理
输入IP和端口号(这步应该都会吧)
2.2.2Charles设置 socket链接地址和端口
点击Proxy——Proxy Settings
2.2.3 设置SSL (这一步以前设置了 抓特定的包就不用再设置了没有就设置一下 )
点击Proxy——SSL Proxying Settings
2.2.4iOS手机vpn配置编辑节点 (app大家应该认识吧)
2.2.5 可以愉快得抓socket的包啦
2.3 IOS 抓socket(方法二)
方法一没用的情况下,我发现方法二是可行的
不需要vpn
2.3.1 手机WiFi先配置好Charles代理
WiFi代理输入IP和端口号
2.3.2 iOS手机打开开发者模式
打开开发者模式方法一:
手机设置——隐私与安全性——在最下面找到开发者模式打开——最后在设置能看得开发者
如果在隐私与安全性没有找到开发者模式,那么得靠方法二
方法二:那就是找开发打个app测试包,这样子就有开发者了。是的 就是这样
2.3.3Charles设置 socket链接地址和端口
随便设置
2.3.4设置SSL
点击Proxy——SSL Proxying Settings
2.3.5就能抓到socket的包了 找到这个“圆圆黑黑以wss:”开头的
2.4安卓手机 抓socket
(下次再写,因为公司现在不做安卓的app,没测到)
2.4.1要下载 Postern
Postern简介
Postern并不是抓包工具,它是一个代理工具。
它可以将http请求转为socket,并且包转发到Charles上,这样就可以抓到更多的包。
三 有bug
3.1 按照上面方法一iOS的流程 抓不到包报错了
换一个WiFi也不行
手机重新安装证书不行
电脑重新安装证书不行 手机一直提示此服务器的证书无效
用方法二就可以了,有些奇怪 后面再看看。