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

PHP发起GET API请求时遇"AAR:002 No JWT found"错误求助

问题排查:PHP cURL请求API报"AAR: 002 No JWT Found"错误

核心问题定位

你的代码中HTTP请求头格式错误,这是服务器无法识别JWT的直接原因。

在CURLOPT_HTTPHEADER数组里,你用=>作为头名与值的分隔符,但HTTP标准要求必须用: (冒号加空格)。错误的格式会导致服务器无法解析JWTToken请求头,进而返回"No JWT Found"错误。

修复步骤

1. 修正HTTP请求头格式

将CURLOPT_HTTPHEADER内的内容从:

array(
    "Content-Type => application/json",
    "JWTToken => $jwt",
    "Pragma => akamai-x-get-extracted-values"
)

改为符合HTTP标准的写法:

array(
    "Content-Type: application/json",
    "JWTToken: $jwt",
    "Pragma: akamai-x-get-extracted-values"
)

2. 验证JWT生成逻辑(可选但建议)

虽然Java/C#环境运行正常,仍建议确认PHP的JWT生成细节:

  • openssl_sign的算法参数:你传入的'sha256'可替换为PHP官方推荐的OPENSSL_ALGO_SHA256常量,避免字符串参数的兼容性问题。
  • 对比JWT内容:打印PHP生成的JWT,与Java/C#生成的结果对比,确保头部、负载结构及签名格式完全一致。

3. 调试辅助建议

  • 开启cURL调试模式:在$options数组中添加CURLOPT_VERBOSE => true,查看实际发送的请求头,确认JWTToken已正确传递。
  • 本地验证JWT:用离线JWT解析工具检查生成的令牌,确保头部、负载格式合规,签名有效。

修复后的关键代码片段

$options = array(
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_SSLKEY => $privatekey_sslkey,
    CURLOPT_SSLCERT => $pem,
    CURLOPT_KEYPASSWD => $sslCertPass,
    CURLOPT_SSLCERTPASSWD => $sslCertPass,
    CURLOPT_SSL_VERIFYHOST => 2,
    CURLOPT_SSL_VERIFYPEER => true,
    CURLOPT_HTTPHEADER => array(
        "Content-Type: application/json",
        "JWTToken: $jwt",
        "Pragma: akamai-x-get-extracted-values"
    ),
    CURLOPT_VERBOSE => true // 可选,用于调试请求细节
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 01:15:54