JIRA - 将webrequest的凭据传递给API?

时间:2018-03-22 16:13:46

标签: httpwebrequest jira credentials

尝试构建一个服务,根据传递给它的ID获取JIRA票证的信息。

我正在调用API来获取传递给服务的ID,将其添加到API的URL并获取JSON对象。 问题是,似乎必须登录或在JIRA上注册才能使用API​​。

因此,如果我使用下面的代码发出请求,我会收到404错误,就像我在任何浏览器上一样,我以前没有登录过Jira

 request.Credentials = new NetworkCredential("vinnie@company.com","mypassword");

我可以像这样添加凭证

  if example_array.length > 0
     span() Array contains elements! 
     - if (example_array.includes('example string'))
       span() Array includes example string! 

但我不知道究竟需要发送什么。我已经尝试过我在Jira中设置的电子邮件地址,但这不起作用。

我怀疑Jira在我的浏览器中添加了一个cookie,用于在初始配置后进行验证 - 是这样吗?如果是这样,我可以在我的网络请求中添加/包含哪些内容以使其运行?

我是否只是以正确的方式访问它?或者是否可以对Jira方面进行更改以允许请求?

1 个答案:

答案 0 :(得分:0)

您必须首先使用Base64格式对凭据进行编码,然后将这些凭据放入您的请求中,如下所示:

string mergedCredentials = string.Format("{0}:{1}", m_Username, m_Password);
byte[] byteCredentials = UTF8Encoding.UTF8.GetBytes(mergedCredentials);
string base64Credentials = Convert.ToBase64String(byteCredentials);

request.Headers.Add("Authorization", "Basic " + base64Credentials);

希望您能通过这种方法解决问题!