2012-07-13 81 views
3

我正在使用GitHub API v3与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(); 
    }(..) 

注意:我不确定在哪里需要添加accesstoken。我已经尝试在标题以及在网址中,但他们都没有工作。

+0

你找到一个解决这个问题?我遇到了同样的问题。 – Gero 2013-09-23 09:54:24

+0

请注意,你现在可能只想使用它:https://github.com/octokit/octokit.net或者如果你不想全部复制你做的部分 - 这是一个公共github回购 – RhysC 2014-07-08 08:26:40

回答

2

你使用的是C# Github API example code?我会查看该代码,看看它是否满足您的需求。

+0

没有。我没有使用它。它的“非常早期的发展阶段,只有认证在这个时候完成”。 – 2012-07-16 16:50:42

3

您可以只添加auth的请求头很容易地使用基本身份验证:

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

对不起还没有使用的访问令牌的东西呢。

1

这里需要添加此令牌:

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