use*_*763 2 c# asynchronous httpclient async-await
我有这行代码:
HttpResponseMessage aResponse = await aClient.PostAsync(theUri, theContent);
Run Code Online (Sandbox Code Playgroud)
但是,我有一个错误:"await"运算符只能在异步方法中使用.考虑使用'async'修饰符标记此方法并将其返回类型更改为'Task'.
所以我去搜索并找到了这个链接:HTTPClient异步POST和读取结果的故障排除
我已经尝试了答案,但我仍然得到了这个错误.我该怎么办?太感谢了
您需要修饰包含await
调用的方法,async
并将其包含在返回类型中Task<TResult>
.例如,如果您是从MVC 的Index()
操作中调用它,则Controller
必须修改:
public ActionResult Index()
{
HttpResponseMessage aResponse = await aClient.PostAsync(theUri, theContent);
//will give you the error you are getting
}
Run Code Online (Sandbox Code Playgroud)
..它变成了:
public async Task<ActionResult> Index()
{
HttpResponseMessage aResponse = await aClient.PostAsync(theUri, theContent);
//no error here
}
Run Code Online (Sandbox Code Playgroud)
看一下MSDN 上的async(C#Reference).
还有一种情况是Task
在没有返回有意义的值时返回void
,主要用于定义需要返回类型的事件处理程序.
对于所有可能的返回类型的async
方法,请查看MSDN 上的异步返回类型(C#和Visual Basic).
另外,这些操作需要System.Threading.Tasks
在项目中引用.
归档时间: |
|
查看次数: |
1879 次 |
最近记录: |