J'utilise RestShaRP pour faire une demande postale contenant un corps JSON. Mais j'ai une mauvaise erreur de demande.
parce que j'ai Je suis prêt à essayer Veuillez noter que j'essaie de Convertir une boucle JSON en C #. S'il vous plaît voir ci-dessous: strong> p> [] code> et
"" code> dans mon json j'ai décidé d'utiliser newtonsoft.json. Avant d'utiliser cela, je ne pouvais même pas voir une demande JSON en train d'être formée. p>
Mme httpwebrequest code> comme alternative. p>
CURL -H 'Type de contenu: Application / JSON' -X Post -D '-X Post -D' {"Target": [5, 5], "change" : "1555459984", "Précédenttargets": [[[1, 0], [2, 2], [2, 3]]} 'http: // santisé / santisé / santisé code> p> p> p> p> p> P> P> P >
4 Réponses :
Vous semblez être trop sérialisé les données à envoyer.
envisagez de créer un objet, puis de le transmettre à addjsonbody code>. p>
//...
restClient = new RestClient();
restRequest = new RestRequest(ApiUrl, Method.POST, DataFormat.Json);
var myObject = new {
target = new []{ 5, 5 },
lastseen = "1555459984",
previousTargets = new []{
new [] { 1, 0 },
new [] { 2, 2 },
new [] { 2, 3 }
}
};
restRequest.AddJsonBody(myObject); //this will serialize the object and set header
//...
J'essaie de convertir une boucle JSON en C #. Peut-être que ce pourrait être le problème? J'ai mis à jour mon message ci-dessus.
Tous les paramètres sont des chaînes
@Coderocker pas en fonction du boucle que vous avez posté. la cible est un tableau de numéros
Oh je vois - tu as raison à ce sujet! C'est un tableau de numéros. La courbure fonctionne.
@Coderocker Vérifiez ma réponse mise à jour qui devrait correspondre à la boucle
Hey, @nkosi merci beaucoup pour votre aide, ça marche maintenant! :)
Pourquoi pas seulement ceci? Supprimé la ligne où vous êtes sérialisé une chaîne JSON. P> P>
Oui a supprimé la ligne comme suggéré. Mais cela n'a pas fonctionné non plus.
@Coderocker Vous devez clarifier ce que l'API attend. S'il renvoie une mauvaise durée, cela signifie que les données ne sont pas envoyées correctement, mais nous ne pouvons pas vous aider si nous ne savons pas ce que l'API attend.
Vous pouvez également utiliser:
public class RootObject { public string target { get; set; } public string lastseen { get; set; } } restClient = new RestClient(); restRequest = new RestRequest(ApiUrl, Method.POST, DataFormat.Json); RootObject myObject = new RootObject(); myObject.target = "[5,5]"; myObject.lastseen = "1555459984"; var json = JsonConvert.SerializeObject(myObject); restRequest.AddParameter("application/json", ParameterType.RequestBody); restRequest.AddJsonBody(json);
"PrécédentTargets": [[[1, 0], [2, 2], [2, 3]]} ' Code> Comment allez-vous représenter cela comme une matrice? Merci
Vous pouvez faire cet exemple:
public static IRestRequest PostInformationAndPassToken(JsonObject tokenString, string path, string whatistobePosted) { IRestRequest request = new RestRequest(path, Method.POST); request.AddHeader("Authorization", $"Bearer {tokenString["Token"]}"); request.AddHeader("cache-control", "no-cache"); request.AddHeader("Content-Type", "application/json"); request.AddParameter(whatistobePosted, ParameterType.RequestBody); return request; }