2017-06-16 392 views
0

即时通讯测试使用RestSharp的REST API和所需的post方法发布数据并基于回调提供状态(错误,无效,成功)imgting INVALID即“对象引用未设置为一个对象”的实例getting json data from header see image如何发送json数据使用C#中的RestSharp POST方法

这是我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); 
      } 
      } 

我试图request.addJsonBody也不过同样的结果,我想知道使用POST方法

+0

您的后端能够处理BordereauxId和BFormatId的空值吗? – Waescher

+0

是的..在请求头空值是去它在现场工作,但在测试期间得到错误..我我有权使用post方法发送json数据? – user6254141

回答

0

发送JSON数据在web api你需要处理绑定json数据。 WebApi通常会自行完成。 而且你也不必添加标题或任何参数“application/json”。 如果您只是简单地使用AddJsonBody(object obj)方法RestSharp会自动设置标题。

或者另一种方式来做到这一点是:

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); 
    } 

,做自己都不序列化数据。 RestSharp将负责序列化。

+0

谢谢..但现在问题是如何调试API服务器端,而在同一个项目中测试 – user6254141

+0

如果你要调试你为什么使用单元测试? – ArgeKumandan

+0

客户端要求 – user6254141

相关问题