2017-06-16 4 views
0

va tester l'API REST en utilisant RestSharp et la méthode post requise pour publier des données et baser sur le statut de rappel (erreur, invalide, succès) im INVALID qui est "Référence d'objet non définie à une instance d'un objet » getting json data from header see imageComment envoyer des données json en utilisant RestSharp POST Méthode dans C#

c'est mon TestMethod

 [TestMethod()] 
      public void AddNewBFormat() 
      { 
      Random r = new Random((int)DateTime.Now.Ticks); 
      var x = r.Next(100000, 999999); 
      string s = x.ToString("000000"); 

      string UniqueFileName = "S" + s + DateTime.Now.ToString("yyyyMMdd") + ".xlsx"; 
      request.Resource = "api/BFormat/AddNewBFormat"; 
      request.Method = Method.POST; 
      var body= "{'UploadFileVM':{'BordereauxId':null,'BFormatId':null,'FileName':'"+UniqueFileName+ "','Filesize':0,'Path':'C:\\Applications\\new\\\\TempUploadedFiles','size':0,'ActiveSheetIndex':0,'HeaderIndex':0,'MultiHeaders':null,'SheetNames':null,'IsPasswordProtected':false},'BFormat':{'UniqueFileName':'"+ UniqueFileName+"'}}"; 
      request.RequestFormat = DataFormat.Json; 
      request.AddHeader("Content-type", "application/json"); 
      request.AddParameter("Application/Json", body, ParameterType.RequestBody); 
      var queryResult = client.Execute<ResponseData<Guid>> (request).Data; 
      try 
      { 
       Assert.IsTrue(queryResult.ReturnData != null); 

      } 
      catch (Exception ex) 
      { 
       Assert.Fail(ex.Message); 
      } 
      } 

j'ai essayé request.addJsonBody aussi, mais même résultat que je veux savoir pour envoyer des données JSON en utilisant la méthode POST

+0

Votre backend est-il capable de gérer ces valeurs nulles pour BordereauxId & BFormatId? – Waescher

+0

oui..en requête en-tête la valeur nulle va c'est travailler sur le site en direct mais en obtenant une erreur pendant le test .. suis-je autorisé à envoyer des données json en utilisant la méthode post? – user6254141

Répondre

0

dans votre web vous api besoin de gérer les données json de liaison. WebApi le fait normalement. Et aussi vous n'avez pas à ajouter en-tête ou tout paramètre avec "application/json". Si vous pouviez simplement utiliser la méthode AddJsonBody(object obj) RestSharp définira automatiquement l'en-tête.

Ou une autre façon de le faire est la suivante:

Random r = new Random((int)DateTime.Now.Ticks); 
    var x = r.Next(100000, 999999); 
    string s = x.ToString("000000"); 
    string UniqueFileName = "S" + s + DateTime.Now.ToString("yyyyMMdd") + ".xlsx"; 
    request.Resource = "api/BFormat/AddNewBFormat"; 
    request.Method = Method.POST; 
    request.RequestFormat = DataFormat.Json; 
    var body = new 
    { 
     UploadFileVM = new 
     { 
      BordereauxId = "", 
      BFormatId = "", 
      FileName = UniqueFileName, 
      Filesize = 0, 
      Path = @"c:\sdakdldas\" 
     } 
    }; 
    request.AddBody(body); //enter code herE 
    var queryResult = client.Execute<ResponseData<Guid>>(request).Data; 
    try 
    { 
     Assert.IsTrue(queryResult.ReturnData != null); 

    } 
    catch (Exception ex) 
    { 
     Assert.Fail(ex.Message); 
    } 

Et ne sérialise pas les données par urself. RestSharp s'occupera de la sérialisation.

+0

merci ... mais maintenant le problème est de savoir comment déboguer côté serveur API pendant le test dans le même projet – user6254141

+0

si vous allez déboguer votre test d'unité Pourquoi utiliser? – ArgeKumandan

+0

requis par le client – user6254141