当前位置: 首页 > 知识库问答 >
问题:

HttpClient get在放入异步方法[重复]时不工作

苏鸿才
2023-03-14

我正在尝试在方法调用中使用它来从源中获取字符串

HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(url);
string responseBody = await response.Content.ReadAsStringAsync();
Console.Write(responseBody);

当在方法和类之外使用时,它可以很好地与我的url配合使用,并返回我正在寻找的正确字符串。但是,当我把它放在我的类和方法中时,它不再做任何事情。没有错误,只是什么都不返回。

作为参考,我使用的方法如下所示

public async void get(String test) {

        HttpClient client = new HttpClient();
        HttpResponseMessage response = await client.GetAsync(test);
        string responseBody = await response.Content.ReadAsStringAsync();
        Console.Write(responseBody);
        
    }

我不知道为什么一旦我把它放入一个方法中,它就停止工作了。

共有1个答案

酆俊远
2023-03-14

让你的方法返回一个任务,它就会工作

public async Task get(String test)
{
    HttpClient client = new HttpClient();
    HttpResponseMessage response = await client.GetAsync(test);
    string responseBody = await response.Content.ReadAsStringAsync();
    Debug.Write(responseBody);
}

private async void btnTest_Click(object sender, EventArgs e)
{
    try
    {
        Task t = get("https://stackoverflow.com/questions/71787949/c-sharp-httpclient-get-does-not-work-when-put-in-async-method");
        IEnumerable<Task> tasks = new[] { t };
        await Task.WhenAll(tasks);
    }
    catch (Exception oException)
    {
        Debug.WriteLine(oException.ToString());
    }
}
 类似资料:
  • 执行以下操作有什么不同: vs 在我的情况下,出于某种原因,只有第二种方法有效。第一个似乎永远不会结束。

  • 在调试的目的,我写了一个新的代码,看看异步函数是如何工作的,所以我有下一个情况 我有3个函数log1(),log2(),main(),我希望: 当我调用main()时,它应该调用log1(),直到它完成所有语句,然后它应该调用log2() 所以我希望它能输出 1个 2. 但它确实有产出 2. 1个 我要注意的是,我不能编辑slowFunction,您应该将它视为需要未知时间执行的函数,因此我需要等

  • 我有一个问题,这个代码没有插入到数据库中的值。。。 我想不出来。。。我已经确保这些值是从HTML表单页面传递过来的。我已经能够让删除页面正常工作了。“mysqli_查询(insert-into)”只是没有将值插入数据库。

  • 没有await并且在非异步方法中调用异步方法的行为是什么?我这样问是因为我看到Visual Studio在调用异步方法时没有显示任何警告,好像这是一件非常正常的事情。在这种情况下,异步方法的行为是否像是同步的?

  • 我刚刚完成了一门关于python for Data Science的在线课程。我想在Pycharm edu中编写一些自己的代码。我以前也这么做过,一切都很顺利。我在Linux Mint中通过Pycharm和控制台下载了“numpy”和“matplotlib”。当我导入numpy并导入matplotlib(并且不编写其他内容)时,我的程序运行正常,但是当我编写“import matplotlib.p