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

本文关键字:异步 web api 调用 asp net | 更新日期: 2024-09-20 19:48:15

我正在尝试从asp.net
实现异步web api调用

我的代码类似于这个

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

这是在同步模式下工作的。

我不想等待webapi调用完成。如何使用.net框架4实现此功能?

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

将行更改为:

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;

我如何使用.net框架4来实现这一点?

不能在ASP.NET 4上使用asyncawaitHttpClient。它们都需要ASP.NET 4.5。您可以选择升级到ASP.NET 4.5并使用自然的await语法,或者留在ASP.NET 4并使用类似WebClient的语法。