如何从asp.net进行异步web api调用?

时间:2013-12-13 05:02:14

标签: c# asp.net asp.net-web-api

我正在尝试从 asp.net 实施异步网络API

我的代码与此类似

var response = httpClient.PostAsJsonAsync("api/apicontroller/execute/", executeModel).Result;

这适用于同步模式

我不想等待 webapi电话完成。 我如何使用 .net framework 4 实现这一点?

2 个答案:

答案 0 :(得分:2)

将行更改为:

var response = await httpClient.PostAsJsonAsync("api/apicontroller/execute/", executeModel);

检查Result属性使其同步。另外,请确保您的方法签名包含async关键字。

编辑:如果您不想立即等待结果,可以推迟等待(或从不执行):

var task = httpClient.PostAsJsonAsync("api/apicontroller/execute/", executeModel);
/* Do other stuff in parallell here */
var result = await task;

答案 1 :(得分:1)

  

我如何使用.net framework 4实现这个?

您无法在ASP.NET 4上使用asyncawaitHttpClient。它们都是require ASP.NET 4.5。您可以选择升级到ASP.NET 4.5并使用自然的await语法,或者继续使用ASP.NET 4并使用类似WebClient的内容。