如何在Postman中调用SignalR Hub的方法并传递参数
Postman 调用SignalR Hub 实操步骤
首先确认你已经在Postman中创建WebSocket请求,输入Hub URL完成连接,操作参考下图:
步骤1:完成SignalR协议握手
连接成功后,首先在Postman的消息输入框发送如下握手消息:
{"protocol": "json", "version": 1}
注意:末尾的是ASCII 0x1E记录分隔符,必须添加。Windows端可按Alt+030输入,Mac端可直接复制该分隔符使用。
步骤2:调用Hub的GetTrades方法
对应你的C#调用代码 await hubConnection.InvokeAsync("GetTrades", _username);,发送如下格式的消息即可:
{"type": 1, "target": "GetTrades", "arguments": ["替换为你的_username实际值"]}
字段说明:
type:值为1代表这是一个Hub方法调用请求target:填你要调用的Hub方法名,此处为GetTradesarguments:按顺序填写方法的入参数组,此处只有一个用户名参数,直接填对应值即可
注意:消息末尾同样需要添加0x1E记录分隔符
步骤3:接收ReceiveTrades推送
对应你的C#接收推送代码,不需要主动操作,完成上述步骤后:
- 切换到Postman WebSocket面板的「Messages」tab
- 服务端触发
ReceiveTrades推送时,会自动在接收消息列表中展示对应内容,格式如下:
{"type": 1, "target": "ReceiveTrades", "arguments": [{"此处为Trade对象的JSON内容"}]}
取arguments数组的第一个元素,就是你代码中拿到的trade参数对应的数据,和你代码中序列化后的结果一致。
常见注意事项
- 如果你的Hub配置了身份校验,需要在创建WebSocket请求时,在「Headers」 tab添加
Authorization头,值为Bearer 你的实际鉴权令牌即可 - 若服务端SignalR使用MessagePack序列化协议,需将握手消息中的
protocol字段值改为messagepack,同时传输的消息内容需要按照MessagePack格式序列化后发送 - 所有发送到SignalR服务端的消息必须携带末尾的0x1E分隔符,否则服务端会认为消息不完整,不会处理请求
内容的提问来源于stack exchange,提问作者Gabriel Ribeiro
相关产品推荐
相关产品推荐

