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

如何使用Google App Script为GET请求添加嵌套结构的URL查询参数

修正方案

你原有代码存在以下几处错误:

  • GET请求的查询参数需拼接在URL末尾,不能放在headers的Request字段中
  • JS对象的key包含[]这类特殊字符时必须用引号包裹,name、eq为字符串值也需要加引号,否则会被识别为未定义变量
  • method是options的根级配置项,不属于headers字段
  • GET请求无请求体,不需要设置Content-Type: application/json请求头

正确代码示例

function getProducts() {
  // 基础URL,请替换为实际域名
  const baseUrl = 'URL/rest/V1/products';
  // 定义查询参数,key用引号包裹,字符串值也加引号
  const params = {
    "searchCriteria[filter_groups][0][filters][0][field]": "name",
    "searchCriteria[filter_groups][0][filters][0][value]": "10",
    "searchCriteria[filter_groups][0][filters][0][condition_type]": "eq"
  };
  // 将参数转为查询字符串拼接到URL
  const queryString = Object.keys(params)
    .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)
    .join('&');
  const requestUrl = `${baseUrl}?${queryString}`;

  const options = {
    'method': 'get',
    'headers': {
      'Accept': 'application/json',
      // 注意如果是Bearer令牌,需要加上Bearer前缀,示例:'Authorization': 'Bearer ' + TOKEN
      'Authorization': TOKEN
    }
  };

  try {
    const res = UrlFetchApp.fetch(requestUrl, options);
    Logger.log(res.getContentText());
    // 可直接解析JSON使用
    // const data = JSON.parse(res.getContentText());
  } catch (e) {
    // 捕获错误方便排查
    Logger.log('请求错误:' + e.message);
    if (e.response) {
      Logger.log('错误响应内容:' + e.response.getContentText());
    }
  }
}

注意事项

  • 请确认你的TOKEN值符合接口要求,大部分OAuth2接口的Authorization头需要加上Bearer 前缀
  • 如果参数值有中文或特殊字符,encodeURIComponent会自动处理编码,避免乱码问题

内容的提问来源于stack exchange,提问作者User-15895

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 06:36:11