Windows环境下无需jq从curl响应提取Bearer Token并调用API
Windows环境下无jq提取Bearer Token并调用API的实现方案
因为无法安装jq等工具,我们可以直接用Windows原生命令行工具(curl、findstr、for)完成token提取和后续API调用,具体步骤如下:
1. 提取access_token(Bearer Token)
通过curl调用OAuth API,结合findstr和for命令提取token并保存到环境变量:
@echo off :: 调用OAuth API并筛选出包含access_token的行,提取对应字段 for /f "tokens=2 delims=:, " %%a in ('curl -X POST https://api.mysite.com/oauth/token -u "login:password" ^| findstr "access_token"') do ( set "RAW_TOKEN=%%a" ) :: 移除token两端的双引号,得到纯净的token值 set "TOKEN=%RAW_TOKEN:"=%"
命令说明:
findstr "access_token":从API响应中筛选出包含access_token的行for /f "tokens=2 delims=:, " %%a:以:、,、空格为分隔符,提取该行的第二个字段(即带引号的token字符串)set "TOKEN=%RAW_TOKEN:"=%":去掉token值两端的双引号,得到可直接使用的token
2. 使用提取的Token调用目标API
引用环境变量%TOKEN%构造Authorization头部,调用Apigee托管的API:
curl -X GET https://apigee.mysite.com/getorderstatus -H "Authorization: Bearer %TOKEN%"
注意事项:
- 修正了你提供的目标API示例中的拼写错误:
Authroization应为Authorization,且头部格式需严格遵循Authorization: Bearer <token>(注意冒号后加空格) - 确保Windows系统已自带
curl(Windows 10 1809及以上版本默认包含),若没有可单独下载适配Windows的curl工具 - 若OAuth API响应格式有细微调整,需对应修改
for命令的delims和tokens参数以匹配实际输出
内容的提问来源于stack exchange,提问作者JSLover
相关产品推荐
相关产品推荐

