我在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 :(得分: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