【问题标题】:.net github api - can't connect to repository.net github api - 无法连接到存储库
【发布时间】:2015-09-27 10:55:13
【问题描述】:

使用下面的代码,我尝试使用 octokit.net 连接到 jquery 存储库,但代码似乎从未到达 print 语句。这种情况有什么原因吗,我知道 await 关键字导致了延迟,但核心问题是为什么我无法连接到存储库。谢谢

       static async void test()
    {

        var client = new GitHubClient(new ProductHeaderValue("OctokitTestsJordan"));

        var repository = await client.Repository.Get("jquery", "jquery");

        Console.WriteLine("aa");

    }

【问题讨论】:

  • 您是否尝试查看您的请求在 Postman 中是否有效?
  • 您好,我找到了解决方案,如果您有兴趣,我会尽快将其作为答案发布,基本上我似乎没有将 await 与 Task 配对。
  • 您使用的是控制台应用程序吗?
  • 是的,没错

标签: .net api github octokit


【解决方案1】:

您不能在控制台应用程序中使用async/await,因为控制台应用程序不支持异步主方法。如果您想了解更多有关此问题的信息,Stephen Cleary 在他的博客中谈到了这一点:Async Console Programs

对于您的代码,它将如下所示:

using Nito.AsyncEx; // get it on NuGet

class Program
{
    static void Main(string[] args)
    {
        AsyncContext.Run(() => MainAsync(args));
    }

    static async void MainAsync(string[] args)
    {
        await Test();
    }

    private static async Task Test()
    {
        var client = new GitHubClient(new ProductHeaderValue("OctokitTestsJordan"));

        var repository = await client.Repository.Get("jquery", "jquery");

        Console.WriteLine("aa");
    }
}

顺便说一句,Stephen Cleary 是 async/await 主题上最多产的开发人员之一。我向您推荐他的博客作为围绕这个主题的重要内容来源。

【讨论】:

    【解决方案2】:

    将代码更改为此解决了问题,在发现一个模糊的堆栈溢出帖子后,我错过了我的第一轮研究,显然在使用 await 时,如果有人愿意添加更多细节,它需要与“任务”配对为什么会这样,请为未来的观众添加评论。

        static void Main(string[] args)
        {
            Task.Run(async () => { await test(); }).Wait();
        }
    
        private static async Task test()
        {
    
            var client = new GitHubClient(new ProductHeaderValue("OctokitTestsJordan"));
    
            var repository = await client.Repository.Get("jquery", "jquery");
    
            Console.WriteLine("aa");
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-01
      • 2017-12-08
      • 2019-01-01
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-30
      相关资源
      最近更新 更多