Я хотел запрограммировать библиотеку для DiscordBot на C #, но прежде чем я смогу отправить сообщение, я должен отправить запрос WSS POST на Discord Gateway, который не работает со стандартным WebRequest.
Вместо этого я попытался использовать HTTPS, но WSS - это еще один префикс, который WebRequest не понимает. Использование WebRequest.Registerprefix () также не работало, но я думаю, что это может работать с правильным интерфейсом.
Вот код:
private void Identify(string token)
{
string reqContent = "{"+
"\"token\": \"" + token+ "\","+
"\"properties\": {"+
"\"$os\": \"linux\","+
"\"$browser\": \"disco\","+
"\"$device\": \"disco\"" +
"},"+
"\"compress\": true,"+
"\"large_threshold\": 250,"+
"\"shard\": [1, 10],"+
"\"presence\": {"+
"\"game\": {"+
"\"name\": \"Cards Against Humanity\","+
"\"type\": 0"+
"},"+
"\"status\": \"dnd\","+
"\"since\": 91879201,"+
"\"afk\": false"+
"}"+
"}"; //Example from discord.gg
WebRequest req = WebRequest.Create(
"wss://gateway.discord.gg/?v=" + gatewayVersion + "&encoding=json");
//Here is the Exception
req.Method = "POST";
var bytes = Encoding.ASCII.GetBytes(reqContent);
req.GetRequestStream().Write(bytes, 0, bytes.Length);
WebResponse response = req.GetResponse();
Console.WriteLine(response.GetResponseStream().ToString());
}