首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpClient.GetAsync不工作

HttpClient.GetAsync不工作
EN

Stack Overflow用户
提问于 2014-12-12 09:17:41
回答 1查看 3.1K关注 0票数 0

为什么这段代码不起作用?我之前也使用过类似的东西,这使得它更加令人困惑。它就会出现在“等待httpClient.GetAsync.”行,没有任何异常,可以在try/catch中捕获。在一个针对.net 4.5并在两台不同机器上进行测试的示例控制台应用程序中,我有相同的代码,得到了相同的结果(或者没有结果)。

编辑:整个Program.cs示例

代码语言:javascript
复制
using System;
using System.Net.Http;

namespace Main
{
    class Program
    {
        static void Main(string[] args)
        {
            DownloadPageAsync();
        }

        private static async void DownloadPageAsync()
        {
            var httpClient = new HttpClient();
            var response = await httpClient.GetAsync("http://en.wikipedia.org/");
            response.EnsureSuccessStatusCode();
            Console.WriteLine(await response.Content.ReadAsStringAsync());
            httpClient.Dispose();

            Console.ReadLine();
        }
    } 
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-12 09:55:03

主线程在DownloadPageAsync方法完成之前结束。

你用的是虚空的方法签名,意思是火和遗忘。当您在主方法中调用DownloadPageAsync方法时,如果该方法运行得太快,它将很好地工作,如果需要更长的时间,它将在代码执行之前结束程序。您应该在DownloadPageAsync上使用Task,在Main方法上使用.Result来等待代码的执行。

或者,将Console.ReadLine();改为main方法,而不是.Result。如果您不按enter键,也可以这样做:)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27440332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档