2017-06-16 202 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

相關問題