如何使用Fiddler测试WebSocket
一 Fiddler本身可以捕获WebSocket流量,但是无法操纵WebSocket流量。
1、启动fiddler,在主session列表中找到带ws图标的WebSocket请求。
2、双击ws请求,Fiddler界面右边就会出现WebSocket选项卡。在这个选项卡下,你能够重组碎片信息,并使用一些查看器看每个信息的内容。
如下图,第一行实时显示此WebSocket连接中WebSocket ID、所发消息个数、连接是打开/关闭状态等。每个消息前面向上的蓝色箭头代表客户端向服务器发送的消息,向下的绿色箭头代表服务器向客户端发送的消息。
可以看到,WebSocket选项卡下,目前只能查看Metadata、TextView、HexView和JSON四种数据格式。若是你的WebSocket含有更高的格式(比如二进制图像),可以点击Inspect as Response按钮,在主session列表中用Fiddler的查看器查看。
二 借助FreeHttp修改WebSocket请求
Fiddler本身无法操纵WebSocket流量,但是我们可以通过安装FreeHttp插件的方式对其进行拦截和修改。
FreeHttp 插件安装
1、下载FreeHttp.dll。(地址:https://files.cnblogs.com/files/lulianqi/FreeHttp2.3.0zip 或 http://lulianqi.com/file/FreeHttp2.3.0.zip 解压可得到 FreeHttp.dll)
2、进入Fiddler安装目录的Scripts目录下,将FreeHttp.dll复制到该目录下。
3、重启Fiddler即可在面板中出现FreeHttp 标签。
FreeHttp 使用方法
1、以京东客服为例,如下图所示创建规则
2、重新聊天,规则生效。
3、针对复杂的场景,FreeHttp还有很多高级规则可以配置,此处不再一一详述。具体方法请看:https://www.cnblogs.com/lulianqi/p/13641844.html
三 在Log中输出WebSocket包信息
1、在Fiddler菜单Rules > Customize Rules中添加Handlers类的OnWebSocketMessage方法。
在class Handler中添加代码:
static function OnWebSocketMessage(oMsg: WebSocketMessage) { // Log Message to the LOG tab FiddlerApplication.Log.LogString(oMsg.ToString()); }
2、重启Fiddler,抓包,可以看到log中输出了WebSocket信息。