You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jira AQL REST API PHP CURL请求page参数失效问题求助

解决Jira Assets AQL API分页参数无效问题

问题根源

你的代码核心问题在于错误地用GET请求传递请求体:HTTP规范中GET请求通常不携带请求体,Atlassian的API服务器会直接忽略GET请求的body内容,导致你传入的page参数完全不被识别,始终返回默认的第一页数据。另外Jira Assets的AQL对象查询端点更适合用POST请求传递查询和分页参数,这也是你之前Python Requests能成功的原因。

修复步骤

  1. 将请求方式从GET改为POST,移除CURLOPT_CUSTOMREQUEST => "GET"配置,通过CURLOPT_POST => true开启POST请求。
  2. 将URL中的qlQuery参数移到请求体的JSON中,和page参数一起传递。
  3. 确保请求体是格式正确的JSON字符串,还可添加limit参数自定义每页返回数量(最大支持100条)。

修正后的代码

$assets_page = 2; // 测试分页,可根据需求动态递增
$limit = 25; // 自定义每页条数,最大100

$requestBody = json_encode([
    'qlQuery' => 'objectSchemaId=1 AND objectTypeId=1',
    'page' => $assets_page,
    'limit' => $limit
]);

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => 'https://api.atlassian.com/jsm/assets/workspace/xxxx-xxxx-xxxx-xxxx/v1/aql/objects',
    CURLOPT_USERPWD => 'username:token',
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $requestBody,
    CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
    CURLOPT_RETURNTRANSFER => true             
]);

$result = curl_exec($ch);
curl_close($ch);
$decoderesult = json_decode($result);
print_r($decoderesult);  

额外说明

  • 若要获取全部资产,可循环递增page参数,直到返回的objects数组为空,或已获取的资产总数等于返回结果中的total字段值。
  • 确认你的API Token拥有Jira Assets的访问权限,避免因权限不足导致异常返回。

内容的提问来源于stack exchange,提问作者snowbreacker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 19:33:17