问题描述
在一个控制器 (MVC ASP.NET) 中,我需要下载一些网页并对其进行分析。 目前我使用的是 Visual Studio 2019 和 .NET Framework 4.8。
我的代码是这样的(简化):
public async void GetHtmlStream(Uri urlAddr)
{
HttpClient client = new HttpClient();
using (HttpResponseMessage Resp = client.GetAsync(urlAddr).Result)
{
using (HttpContent content = Resp.Content)
{
Stream stream = await content.ReadAsstreamAsync().Result;
}
}
}
行 Stream stream = await content.ReadAsstreamAsync().Result;
不编译:
“错误 CS1061 'Stream' 不包含 'GetAwaiter' 的定义......”
在测试程序中,避免异步和等待,我有这样的一行:
string result = content.ReadAsstringAsync().Result;
一切正常。
在控制器中,当然没有任何作用。
我看到了很多类似的问题,但我不明白我该怎么做才能解决问题。
解决方法
试试
Stream stream = await content.ReadAsStreamAsync();
相反。