ASP.NET API客户端
问题描述:
我正在学习如何建立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没有工作过之后,刚刚闭幕。
这里有什么问题?
答
我真的很抱歉,我发布了simpe问题。理解是在RunAsync(data)上添加.Wait();
RunAsync(data).Wait();