WSO2 API Manager测试API时curl报Bearer undefined错误
报错原因
出现Bearer undefined报错本质是两个层面的问题:
- 直接复制了开发者门户未完成访问令牌生成流程时的占位curl命令,
undefined是前端页面没拿到有效令牌时的默认占位值,根本不是合法的鉴权凭证。 - 当前使用的curl命令本身存在多处语法错误,即使令牌有效也会调用失败:
- URL查询参数拼接错误:
StartDate和EndDate两个参数之间漏了连接符&,用空格分隔会导致curl截断URL,参数传递不全。 - Authorization头格式完全错误:同时混用了Basic、Bearer两种鉴权格式,头字段的键值对位置写错,WSO2 API Manager网关调用默认使用Bearer令牌鉴权,不需要额外加Basic认证段。
- URL查询参数拼接错误:
修复方法
按以下步骤操作即可解决:
- 回到WSO2 API Manager开发者门户的API测试页,先完成访问令牌生成:选择已经订阅该API的对应应用,选定要测试的环境(生产/沙箱),点击「生成令牌」按钮,等待页面返回有效访问令牌,确认示例代码里
Bearer后展示的是完整令牌字符串,不再是undefined。 - 修正URL参数拼接错误,把两个日期参数中间的空格替换为
&,保证查询参数格式正确。 - 重写Authorization请求头,删掉错误的Basic认证段和多余的错误字符,仅保留标准Bearer鉴权格式。
修正后的合法curl命令参考如下:
curl -X GET "https://localhost:8243/meter/1/?ConsumerID=LTFAREERKC&StartDate=01-05-2022&EndDate=02-05-2022" -H "accept: */*" -H "Authorization: Bearer 替换为你实际生成的有效访问令牌"
*如果是本地部署的自签名证书测试环境,curl报SSL证书校验错误时,可以在命令里加-k参数跳过证书校验。
内容的提问来源于stack exchange,提问作者riya
相关产品推荐
相关产品推荐

