我如何发布到GitHub API v3

时间:2012-07-13 16:49:07

标签: c# rest oauth github github-api

我在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。我已尝试过标题以及网址,但它们都不起作用。

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

只需在请求标头中添加auth即可轻松使用基本身份验证:

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

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

答案 2 :(得分:1)

您需要在此处添加此令牌:

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

答案 3 :(得分:0)

尝试

rec.Credentials = CredentialCache.DefaultCredentials;

或使用非默认凭据。

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.credentials.aspx