Jira REST错误“使用JQL执行搜索时,字段'project'。”]的值'XXX'不存在

时间:2016-08-26 13:20:26

标签: .net jira-rest-api

我正在尝试从.Net调用Jira REST API(查询项目中的问题),但我收到了上述HTTP 400错误。

这就是我打电话的方式:

using System.Net;
var jiraRequest = HttpWebRequest.CreateHttp("https://example.com/rest/api/latest/search?jql=project=projectname");
jiraRequest.Credentials = new NetworkCredential(username, password);
var response = (HttpWebResponse)jiraRequest.GetResponse();

当我调试它时,注意到从Chrome请求相同的URL工作,但从IE它没有。 有什么想法吗?

4 个答案:

答案 0 :(得分:0)

JQL字符串可能非常复杂,并且将它们正确编码为GET请求中的参数可能会变得令人头疼。 我建议您切换到 / search 的POST端点。

答案 1 :(得分:0)

该错误消息具有误导性。问题在于授权凭据。我的代码是发送此HTTP标头:

Authorization: Token blablabla

当我将标题更改为正确的格式时,它有效:

Authorization: Basic blablabla

答案 2 :(得分:0)

您应首先尝试使用标准curl

找到根本原因
curl -D- -u USER:PASSWORD -X GET -H "Content-Type: application/json" URL

如果工作正常,则表示您的代码不正确。

尝试查看代码的headers,它必须有Authorization: Basic xxxx

答案 3 :(得分:0)

如果执行JQL搜索的用户缺少对项目“ XXX”的浏览项目权限,则会发生错误。 未经该许可,Jira会将项目视为不存在,因此它不是有效的过滤器值。

它在Chrome中对您有效,但在IE或使用您的代码中不起作用,可能是因为您以其他用户身份登录(例如,您的个人帐户,机器人用户,匿名/未登录)。