我正在尝试开发一个c#
应用程序,该应用程序将一些HttpWebRequest
发送到 BitBucket API。
我正在尝试访问以下网址。
https://bitbucket.org/api/1.0/repositories/MyUserName/MyRepo/changesets
C#代码
string url = "https://bitbucket.org/api/1.0/repositories/MyUserName/MyRepo/changesets";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Credentials = new NetworkCredential("MyUserName", "MyPassword");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
这给了我403 error
,这意味着凭据是正确的,但这些凭据不授予调用者访问资源的权限。
我不知道如何解决这个问题。我猜有些配置必须在bitbucket中做但不知道。我是这个存储库的所有者。
请建议我。
答案 0 :(得分:1)
像下面这样添加标题解决了我的问题。
request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes("username:password")));
答案 1 :(得分:0)
这并不意味着凭证是正确的。
您不能以这种方式使用NetworkCredential。请阅读描述NetworkCredentials
的唯一一行你必须: