Reputation: 4249
I have an ASP .Net Core 2.2 Web API with a SignalR hub. Is it possible to call one of its methods (for example, SendMessageToAll) using Postman? The problem is that I only have the API - no frontend - and I need to test.
I tried putting the URl to my hub in Postman (api.mydomain.com/chatHub) but then I'm not really sure how to structure the body. I know SignalR uses WebSockets preferably, and I don't know if PostMan has WebSocket functionality. I believe SignalR can also do HTTP requests if WebSockets is not available, which is something Postman can do. But what body do I use? And do I use an HTTP GET or POST?
I saw a post where the person was using this body in Postman:
{
"Target": "SendMessageToGroup",
"Arguments": [
"groupA",
"hello from server"
]
}
So I tried the same, but when I click "Send" on postman, the SendMessageToGroup method of my hub doesn't get triggered.
Thanks
Upvotes: 39
Views: 36098
Reputation: 381
working for me with asp.net core 5 (didn't tested any other versions)
first of all - need to get connection id by post request
post request to get connection id
then - connect with id that you received
after connection - your first message must be
{"protocol":"json","version":1}
then - we can use this request format
need to add this specific symbol to each of your websockets requests
when specific symbol is not added - requests does not pass
when specific symbol is not added
---- UPDATE
{"protocol":"json","version":1} The special box at the end is critical here is a link to one that you can copy into the postman message: unicodeplus.com/U+001E. Thx David McDermott for his comment.
---- UPDATE
Intruction on Medium (no POST request needed)
Upvotes: 23
Reputation: 2043
Check Postman > 8. If you just inject your hub inside a controller then you can use hub's method and call it's public method from http request inside post man. Or use another app : https://stackoverflow.com/a/59543405/4751073
Upvotes: 6
Reputation: 301
Now is possible with Postman version > 8.0 using WebSocket Request block. You can grab the information in their blog post https://blog.postman.com/postman-supports-websocket-apis/
Upvotes: 18