2017-08-21 2 views
0

Je tente d'envoyer les données JSON suivantes à un serveur via websockets en C#:Envoi JSON avec C# et WebSocket4Net

{   
     "method": "ms.remote.control", 
     "params": { 
      "Cmd": "Click", 
      "DataOfCmd": key, 
      "Option": "false", 
      "TypeOfRemote": "SendRemoteKey" 
     } 
    } 

J'utilise le code suivant pour envoyer les données au serveur:

string json = @"{""method"":""ms.remote.control"",""params"":""{""Cmd"":""Click"",""DataOfCmd"":""KEY_MENU"",""Option"":""false"",""TypeOfRemote"":""SendRemoteKey""}""}"; 

string message = JsonConvert.SerializeObject(json); 

websocketClient.Send(message); 

C'est la sortie des données JSON après sérialisation:

"{\"method\":\"ms.remote.control\",\"params\":\"{\"Cmd\":\"Click\",\"DataOfCmd\":\"KEY_MENU\",\"Option\":\"false\",\"TypeOfRemote\":\"SendRemoteKey\"}\"}" 

Je reçois la réponse suivante le serveur:

Message reçu. Réponse du serveur:

{"event":"ms.error","data":{"message":"missing method field from message"}} 

Est-ce que je ne mets pas correctement le format json? Je sais que les données json sont correctes car le message fonctionne bien à partir du programme python que je tente de porter à partir de ce.

Répondre

0

Je l'ai compris. Le serveur a demandé que le fichier json soit formaté exactement comme ci-dessus. J'ai formaté le json comme suit et la commande a été réussie!

string json = @" 
{ 
      ""method"": ""ms.remote.control"", 
      ""params"": { 
          ""Cmd"": ""Click"", 
       ""DataOfCmd"": ""KEY_VOLUP"", 
       ""Option"": ""false"", 
       ""TypeOfRemote"": ""SendRemoteKey"" 
      } 
        }";