2017-07-31 1 views
1

c'est l'exemple des données de demandeRestsharp question de syntaxe des paramètres de demande

{ 
    "delivery_needed": "false", 
    "merchant_id": "201", 
    "merchant_order_id": "123456", 
    "amount_cents": "25000", 
    "currency": "USD", 
    "items": [], 
    "shipping_data": { 
     "name": "test_user", 
     "street": "sample street", 
     "city": "cairo", 
    } 
} 

J'ai écrit le code C#, mais il semble qu'il y ait une erreur avec la syntaxe des données d'expédition et d'articles.

c'est l'erreur que je suis

{\ "shipping_data \": {\ "non_field_errors \": [\ ". Données non valides attendues d'un dictionnaire, mais a obtenu str \"]}, \ "éléments \": [\ "attendu une liste d'éléments, mais obtenu taper \\" str \\ "\"]}

C'est le code C# je l'ai écrit, je suis confondu avec la syntaxe

var client = new RestClient("url"); 
var request = new RestRequest(Method.POST); 
request.AddHeader("content-type", "application/json"); 
request.AddParameter("application/json", request.AddJsonBody(new { delivery_needed = "false", merchant_id = "201", merchant_order_id = "123456", amount_cents = "25000", currency = "USD", items = "[]", shipping_data = "{ ", name = "test_user", street = "sample street", city = "Cairo"}), ParameterType.RequestBody); 
IRestResponse response = client.Execute(request); 

Répondre

2

Vous construisez actuellement le corps de la requête avec des données malformées.

Vous avez actuellement ...shipping_data = "{ ",... qui est juste une chaîne comme l'erreur indiquée quand il attendait un modèle d'objet approprié ou une paire clé/valeur (dictionnaire).

items selon le message d'erreur n'est également pas fourni correctement. il attend un tableau, mais il a fourni à nouveau une chaîne "[]"

Vous devez construire le modèle correctement

var model = new { 
    delivery_needed = "false", 
    merchant_id = "201", 
    merchant_order_id = "123456", 
    amount_cents = "25000", 
    currency = "USD", 
    items = new object[0], //<--This needs to be an array 
    shipping_data = new { //<--This needs to be a proper object 
     name = "test_user", 
     street = "sample street", 
     city = "Cairo" 
    } 
}; 
var client = new RestClient("url"); 
var request = new RestRequest(Method.POST); 
request.AddHeader("content-type", "application/json"); 
request.AddJsonBody(model); //<-- this will serialize and add the model as a JSON body. 
IRestResponse response = client.Execute(request); 

Notez la construction du modèle à analyser que le corps de la demande. Regardez à quel point il ressemble à l'exemple dans l'OP

+0

merci beaucoup pour la clarification –