【问题标题】:Problems downloading web pages下载网页的问题
【发布时间】:2021-04-16 14:35:03
【问题描述】:

在一个控制器(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; 一切正常。 在控制器中,当然没有任何作用。

我看到很多类似的问题,但我不明白我应该怎么做才能解决这个问题。

【问题讨论】:

    标签: c# httpcontent


    【解决方案1】:

    试试

    Stream stream = await content.ReadAsStreamAsync();
    

    改为。

    【讨论】:

    • 好一点:现在编译器在 streamTask.Result 中告诉我“错误 CS1061 'Stream' 不包含 'Result' 的定义 ...”。
    • 我认为ReasAsStreamAsync 已经返回了一个流。你不需要结果。请参阅我的更新答案。
    • 使用我编译的 updatewd 答案。现在我正在测试。
    • 好的,现在我编译了,但没有任何效果。现在问题不同了:运行我这里有一个异常: Resp = client.GetAsync(urlAddr).Result 我正在尝试简化和隔离问题。
    • 事实上,问题已经完全解决了:我没有更改packages.config(我的错),因此应用程序仍然使用旧包,当然不能工作!更新 packages.config 终于成功了!
    猜你喜欢
    • 2013-08-21
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 2023-01-08
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    相关资源
    最近更新 更多