调用Jira REST API搜索创建日期时触发“无效参数”异常
解决Jira REST API添加日期条件后"Invalid argument"错误
问题核心是URL参数未正确编码。Jira界面里能运行的JQL直接放到URL里会因为特殊字符(空格、单引号、大于号等)导致服务器解析失败,必须对整个JQL字符串做URL编码。
具体解决步骤:
- 先写好能在Jira中正常运行的JQL(注意日期要加单引号):
(reporter='joe' OR author='joe') AND (project in (prod1, prod2, prod3) AND created > '2024-06-15') - 对上述JQL字符串进行URL编码,把特殊字符转换成URL安全的格式。转换后JQL会变成:
(reporter%3D%27joe%27+OR+author%3D%27joe%27)+AND+(project+in+(prod1%2C+prod2%2C+prod3)+AND+created+%3E+%272024-06-15%27) - 将编码后的JQL拼接到API请求URL中,最终请求地址如下:
https://jira.company.org/rest/api/2/search?jql=(reporter%3D%27joe%27+OR+author%3D%27joe%27)+AND+(project+in+(prod1%2C+prod2%2C+prod3)+AND+created+%3E+%272024-06-15%27)
如果用代码调用API,建议直接用语言自带的URL编码函数处理JQL参数,比如:
- Python:
urllib.parse.quote(jql_string) - Java:
URLEncoder.encode(jql_string, "UTF-8")
这样能自动处理所有特殊字符,避免手动编码出错。
内容的提问来源于stack exchange,提问作者Gary
相关产品推荐
相关产品推荐

