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

在Curl请求中使用Token变量失败,求新手解决方案

Curl变量替换问题解决方法

先纠正变量赋值错误

bash中变量赋值不能有空格,你的写法token = "xxx"会触发报错,正确写法是:

token="2_oXDMeAWeR3tiPLWjjPJHV_1OzeSwwW_0dyO0iLE67"

情况1:在请求头中使用变量

问题核心是bash单引号的特性:单引号包裹的内容会完全原样输出,不会解析变量。你原来的-H 'auth: "$token"'里,$token不会被替换成实际值。

两种可行解决方法:

  1. 用双引号包裹整个请求头,让变量正常解析:
curl -X GET 'https://myurl.com/test' \
  -H 'auth-version: 2' \
  -H "auth: $token"
  1. 拼接单引号和双引号,仅让变量部分处于双引号中:
curl -X GET 'https://myurl.com/test' \
  -H 'auth-version: 2' \
  -H 'auth: '"$token"

情况2:在JSON参数中使用变量

同样受单引号限制,另外注意:GET请求通常不携带请求体,若服务器支持GET带body,需用-d参数传递,同时处理变量解析:

解决方法1:用双引号包裹JSON,转义内部的双引号以避免语法错误:

token="2_oXDMeAWeR3tiPLWjjPJHV_1OzeSwwW_0dyO0iLE67"
curl -X GET 'https://myurl.com/test' -d "{\"auth-version\": 2, \"auth\": \"$token\"}"

解决方法2:用单引号拼接JSON内容,变量部分单独用双引号包裹:

token="2_oXDMeAWeR3tiPLWjjPJHV_1OzeSwwW_0dyO0iLE67"
curl -X GET 'https://myurl.com/test' -d '{"auth-version": 2, "auth": "'"$token"'"}'

补充:如果是GET请求,更规范的做法是把认证参数放在URL的查询字符串中:

curl -X GET "https://myurl.com/test?auth-version=2&auth=$token"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:11:31