访问bitbucket api 403禁止

本文关键字:禁止 api bitbucket 访问 | 更新日期: 2023-09-27 18:17:55

我正在尝试开发一个c#应用程序,它发送一些HttpWebRequestBitBucket API。
我试图访问下面的URL。

https://bitbucket.org/api/1.0/repositories/MyUserName/MyRepo/changesets

c# Code

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中做,但我不知道。我是这个存储库的所有者。

访问bitbucket api 403禁止

添加像下面这样的标题可以解决我的问题。

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

这并不意味着凭证是正确的。

您不能那样使用NetworkCredential。请阅读描述NetworkCredentials的唯一一行

你必须:

  • 模拟登录过程。
  • 获取cookie
  • 创建CookiesAwareWebClient