如何向GitHub API v3发布内容

4

我正在使用C#和GitHub API v3。我能够获取访问令牌,并使用它获取用户信息和存储库信息。

但是,当我尝试创建新的存储库时,我会收到未经授权的错误。

我正在使用HttpWebRequest来发布数据,如下所示。请为我提供一些C#示例或示例代码。

(..)string[] paramName, string[] paramVal, string json, string accessToken)
{
    HttpWebRequest req = WebRequest.Create(new Uri(url)) as HttpWebRequest;
    req.Method = "POST";
    req.ContentType = "application/json";

    StreamWriter writer = new StreamWriter(req.GetRequestStream());
    writer.Write(json);
    writer.Close();

    string result = null;
    using (HttpWebResponse resp = req.GetResponse() as HttpWebResponse)
    {
        StreamReader reader =
            new StreamReader(resp.GetResponseStream());
        result = reader.ReadToEnd();
    }(..)

注:我不确定需要在哪里添加访问令牌。我已经尝试在标题和URL中添加,但它们都不起作用。

你找到这个问题的解决方案了吗?我也遇到了同样的问题。 - Gero
请注意,您可能现在只想使用此链接:https://github.com/octokit/octokit.net。如果您不需要全部内容,只需复制所需部分即可 - 这是一个公共的 GitHub 存储库。 - RhysC
4个回答

3
你可以通过在请求头中添加auth来很容易地使用基本身份验证:
request.Headers.Add("Authorization","Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes(username +":"+password)));

很抱歉,我还没有使用过访问令牌。


3

不,我没有使用那个。它还处于“非常早期的开发阶段。目前只完成了身份验证。” - Jaffer Sathick

1

你需要在这里添加这个令牌:

req.UserAgent = "My App";
req.Headers.Add("Authorization", string.Format("Token {0}", "..token..");

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接