【问题标题】:C# - 404 whith GitHub API requestC# - 404 带有 GitHub API 请求
【发布时间】:2022-01-28 03:39:03
【问题描述】:

当我尝试在 GitHub 上获取最新版本的存储库时,我收到了 404 响应。使用浏览器并访问例如 URL“https://api.github.com/repos/python/cpython/releases/latest/”给了我正确的 JSON,但使用 C# 我得到一个 404 错误。该代码昨天运行良好,但今天再次尝试后没有更改任何内容,我得到了错误。 代码如下:

var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("User-Agent", "request");
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Authorization", "token token123"); //token123 is replaced by my token of course
var contentsUrl = $"https://api.github.com/repos/python/cpython/releases/latest/";
var contentsJson = httpClient.GetStringAsync(contentsUrl);
Console.WriteLine(contentsJson.Result);

【问题讨论】:

    标签: c# github github-api


    【解决方案1】:

    主要问题在这里:

    new AuthenticationHeaderValue("Authorization", "token token123");
    

    正如您在docs 中看到的,第一个参数用于Scheme,例如Bearer

     new AuthenticationHeaderValue("Bearer", ACCESS_TOKEN);
    

    如果你的 Scheme 是 token,那么你应该使用这样的:

     new AuthenticationHeaderValue("token", "token123");
    

    【讨论】:

    • 非常感谢,不了解该方案所需的令牌,404 已修复,但是...现在我得到了 401(未授权)
    • 你的代币还活着吗? OAuth 令牌的生命周期可能很短。尝试检索一个新的。
    • 是的,我 15 分钟前刚做了一个新的。
    • 顺便说一句,没有发布github.com/python/cpython/releases
    • 哦,对了,如果我将 repo 更改为另一个已发布的 repo,我仍然会得到 401。
    猜你喜欢
    • 2016-06-14
    • 2013-08-31
    • 1970-01-01
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多