2017-09-21 7 views
0

J'essaie d'envoyer une demande de publication à une API en ligne pour recevoir des données de réseau, elle a été réussie avec valeur-clé normale mais pas avec valeur de tableau et je n'ai pas trouvé sur Internet sans créer une grande quantité de classes supplémentaires.Publication de valeur de tableau à API json avec C#

C'est ainsi que j'ai essayé de publier sur l'url avec des données normales (la 3ème nécessite un tableau à la place d'un seul objet). J'ai essayé d'envoyer des données brutes à l'URL, mais je n'ai pas reçu de réponse de celui-ci.

async static void PostRawRequest(string url) 
    { 
     string rawr = @"{ 
     ""a"":""a"", 
     ""b"":"""", 
     ""c"": [""C"", ""D"",""F""], 
     ""StickerColor"": ""red"" 
     }"; 

     string result = ""; 
     using (var client = new WebClient()) 
     { 
      client.Headers[HttpRequestHeader.ContentType] = "application/json"; 
      result = client.UploadString(url, "POST", rawr); 
     } 
     Console.WriteLine(result); 

}

Quelqu'un peut-il me aider soit dans le premier (envoyer des valeurs de tableau) ou deuxième (envoi de données brutes)?

+0

Au lieu d'essayer de créer une chaîne à la main, il suffit d'utiliser [Json.NET] (https://www.newtonsoft.com/json) –

+0

Vous devriez probablement supprimer WebClient aussi. Il a été remplacé par HttpClient qui, btw peut également sérialiser des objets à Json –

Répondre

1

Si vous le pouvez, utilisez une bibliothèque pour gérer la sérialisation pour vous. Ensuite, vous pouvez faire quelque chose comme ça (en utilisant Newtonsoft.Json):

using (var client = new HttpClient()) 
{ 
    var json = JsonConvert.SerializeObject(yourObject); 
    client.PostAsync(yourUri, new StringContent(json, Encoding.UTF8, "application/json")); 
}