我可以通过邮递员创建到服务器的套接字连接。它需要预先通过 Rest 命令创建不记名令牌。 我现在尝试使用 powershell 复制相同的内容来自动化这些步骤。我仍然可以接收令牌,但创建套接字连接会引发错误:
异常:System.AggregateException:发生一个或多个错误。 ---> System.Net.WebSockets.WebSocketException:无法连接 到远程服务器 ---> System.Net.WebException:远程服务器返回错误:(403) 禁止。 在 System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 在 System.Threading.Tasks.TaskFactory
1.FromAsyncCoreLogic(IAsyncResult iar, Func
2 endFunction,Action1 endAction, Task
1 承诺,布尔值需要同步)
我的脚本看起来像这样 - 我得到的令牌是正确的 - 无法真正找到与之相关的任何内容。
$url = "ws://myserver/test/test"
$bearer = "Bearer $token"
$WS = New-Object System.Net.WebSockets.ClientWebSocket
$CT = New-Object System.Threading.CancellationToken
$WS.Options.SetRequestHeader("Authorization", $Bearer)
#Get connected
$Conn = $WS.ConnectAsync($URL, $CT)
我发现问题了。网址不正确。在 Postman 中,URL 可以以 ws:// 开头,对于 powershell,它需要是 wss://
所以正确的网址是
$url =“wss://myserver/test/test”