Отправка Json с помощью C# и WebSocket4Net
Я пытаюсь отправить следующие данные JSON на сервер через веб-сокеты в C#:
{
"method": "ms.remote.control",
"params": {
"Cmd": "Click",
"DataOfCmd": key,
"Option": "false",
"TypeOfRemote": "SendRemoteKey"
}
}
Я использую следующий код для отправки данных на сервер:
string json = @"{""method"":""ms.remote.control"",""params"":""{""Cmd"":""Click"",""DataOfCmd"":""KEY_MENU"",""Option"":""false"",""TypeOfRemote"":""SendRemoteKey""}""}";
string message = JsonConvert.SerializeObject(json);
websocketClient.Send(message);
Это вывод данных json после сериализации:
"{\"method\":\"ms.remote.control\",\"params\":\"{\"Cmd\":\"Click\",\"DataOfCmd\":\"KEY_MENU\",\"Option\":\"false\",\"TypeOfRemote\":\"SendRemoteKey\"}\"}"
Я получаю следующий ответ от сервера:
Сообщение доставлено. Сервер ответил:
{"event":"ms.error","data":{"message":"missing method field from message"}}
Я неправильно форматирую JSON? Я знаю, что данные json верны, так как сообщение отлично работает от программы python, с которой я пытаюсь перенести это.
1 ответ
Решение
Я понял. Сервер требовал, чтобы формат json был точно таким же, как указано выше. Я отформатировал JSON следующим образом, и команда была успешной!
string json = @"
{
""method"": ""ms.remote.control"",
""params"": {
""Cmd"": ""Click"",
""DataOfCmd"": ""KEY_VOLUP"",
""Option"": ""false"",
""TypeOfRemote"": ""SendRemoteKey""
}
}";