Confluence REST搜索API无法解析CQL问题求助
问题
调用Confluence REST搜索API执行以下查询代码:
In [50]: r = confluence.search(cql=f'title contains "Agent Alert - {event_name}" and label = "agent-event"') # prints the params of the request {'cql': 'title contains "Agent Alert - SYS_THRESHOLD_REACHED" and label = "agent-event"', 'expend': 'body.view'}
返回错误:
In [49]: r.content Out[49]: b'{"statusCode":400,"data":{"authorized":false,"valid":true,"allowedInReadOnlyMode":true,"errors":[],"successful":false},"message":"Could not parse cql : title contains \"Agent Alert - SYS_THRESHOLD_REACHED\" and label = \"agent-event\"","reason":"Bad Request"}'
但在Confluence网页UI中使用完全相同的字符串执行查询却能正常工作,该如何解决?
解决方案
- 移除CQL中的HTML转义字符:代码里的
"是HTML双引号转义符,Confluence API要求直接使用原生双引号,不需要转义。修改后的代码:r = confluence.search(cql=f'title contains "Agent Alert - {event_name}" and label = "agent-event"') - 修正请求参数拼写错误:打印的请求参数里
expend是拼写错误,正确参数名应为expand,这个错误会导致API解析异常,修正后参数应为expand: 'body.view'。 - 直接用原始字符串测试:如果修改后仍有问题,先避开f-string的转义干扰,用固定字符串测试:
test_cql = 'title contains "Agent Alert - SYS_THRESHOLD_REACHED" and label = "agent-event"' r = confluence.search(cql=test_cql, expand='body.view')
内容的提问来源于stack exchange,提问作者James Lin
相关产品推荐
相关产品推荐

