basic-authentication - Github Api Basic认证尝试获取数据时报错403

标签 basic-authentication github-api

当尝试从 github apir 获取数据时,我得到了 403。 我想使用基本身份验证(用户名和密码)。

我也尝试过不使用凭据缓存并设置 直接凭据,结果相同。

我做错了什么?

    string url = "https://api.github.com/search/users?q=gentlehag"

    HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
    request.Method = "GET";
    request.Proxy = null;
    request.PreAuthenticate = true;

    var crds = new NetworkCredential(Username, Password); 
    CredentialCache myCredentialCache = new CredentialCache();
    myCredentialCache.Add(new Uri(url), "Basic", crds);
    request.Credentials = myCredentialCache;

    request.KeepAlive = false;
    request.Accept = "application/vnd.github.v" + Version + "+json";

    using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
    {
        using (StreamReader reader = new StreamReader(response.GetResponseStream()))
        {
            return reader.ReadToEnd();
        }

    }

我也试过像这样在隐藏器中设置基本身份验证

 request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes(Username + ":" + Password)));

-> 相同的结果。

在配置中,我将下面的配置设置为不获取 ProtocolViolationException

<system.net>
    <settings>
      <httpWebRequest useUnsafeHeaderParsing = "true"/>
    </settings>
 </system.net>

最佳答案

经过大量尝试和深入研究 octokit 源代码后,我找到了解决方案。

我必须设置一个用户代理。

添加

request.UserAgent = "myTestApp";

帮我解决了。也许这可以帮助别人

关于basic-authentication - Github Api Basic认证尝试获取数据时报错403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23274344/

相关文章:

elasticsearch - Grafana-当用户名和密码可用于ES时,如何将elasticsearch添加为数据源?

spring-security - Spring security,http basic 或 form 登录认证

python - 为什么用于内容更新的 Github API 会抛出 400 错误?

github - 如何通过合作者搜索github repo

python - 将项目循环到 Django 1.8 模板中

angular - 如何在angular2中弹出浏览器的默认基本身份验证对话框

php - 使用基本身份验证参数将 GET 请求发送到 HTTPS

javascript - 检查站点是否通过 AJAX 使用 Basic Auth

python - 如何关闭 GitHub API 的问题

node.js - 是否可以通过github api进行批量请求?