2017-08-26 224 views
-2

我正在学习如何建立WEB-API客户端ASP.NET API客户端

我已经创造了一些简单的API:

[HttpGet] 
     public IHttpActionResult GetInfo() 
     { 
      return Ok("Its working!"); 
     } 
     [HttpPost] 
     public IHttpActionResult PostInfo(ClientDataDto dto) 
     { 

      try 
      { 
       someMethod(dto.IdKlienta, dto.Haslo, dto.IdZgloszenia, dto.HardwareInfo, dto.SoftwareInfo); 

       return Ok("sent"); 
      } 
      catch 
      { 
       return BadRequest(); 
      } 
     } 

现在我只是试图调用get方法。 当我使用Fiddler与地址 本地主机:someport/API /客户端2 其工作

但是当我尝试通过客户端,代码如下做到这一点:

private static HttpClient client = new HttpClient(); 

     static void Main(string[] args) 
     { 
      #region TESTONLY 
      var debug = new XMLData(); 
      string HardwareInfoXML = debug.HardwareXML; 
      string SoftInfoXML = debug.SoftwareXML; 
      int id_zgloszenia = 20; 
      int idKlienta = 25; 
      //haslo = "202cb962ac59075b964b07152d234b70"; 
      #endregion 

      var data = new ClientDataDto() { HardwareInfo = HardwareInfoXML, SoftwareInfo = SoftInfoXML, IdKlienta = idKlienta, IdZgloszenia = id_zgloszenia }; 
      RunAsync(data); 

     } 





     private static async Task RunAsync(ClientDataDto data) 
     { 
      var stringContent = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json"); 

      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
      client.BaseAddress = new Uri(@"http://localhost:7774/api/client2/"); 
      var url = new Uri(@"http://localhost:7774/api/client2/"); 

      var res1 = await client.GetAsync(url); 
      var res = await client.PostAsync(url, stringContent); 
      res.EnsureSuccessStatusCode(); 

     } 

应用收盘在没有任何信息

var res1 = await client.GetAsync(url); 

我已经检查,看在调试例外的Windows所有异常,但它正试图打电话GetAsync PostASync没有工作过之后,刚刚闭幕。

这里有什么问题?

回答

0

我真的很抱歉,我发布了simpe问题。理解是在RunAsync(data)上添加.Wait();

RunAsync(data).Wait();