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

PUT请求在Postman中正常运行但Google Apps Script调用报错如何解决

问题根因

你代码里有3个关键错误不符合Google Apps Script的UrlFetchApp接口规范:

  • headers参数格式错误:UrlFetchApp要求headers传入单个键值对对象,你写的是包含两个独立对象的数组,这就是Exception: Attribute provided with invalid value: headers报错的直接原因
  • 请求体参数名错误:Google Apps Script中请求体对应的配置键是payload,不是浏览器fetch API用的body,你写的body字段不会被识别,所以移除Content-Type后虽然不报头错误,但实际上根本没把数据提交给接口,才会返回空对象
  • 响应解析逻辑错误:UrlFetchApp.fetch()返回的是HTTPResponse实例,不能直接序列化,需要先调用.getContentText()获取响应正文再转JSON

修正后代码

var payload = {  
  "fieldName": "SingleLineText7",
  "fieldValue": "question1googleSheet" 
}
var encodedAuth = Utilities.base64Encode("nick:nick");
// headers是单个对象,不是数组
var headers = {
  "Authorization" : "Basic " + encodedAuth,
  "Content-Type":"application/json"
};
var options = {
  'method': 'PUT',
  // 用payload而不是body传请求体
  'payload': JSON.stringify(payload),
  'headers': headers,
  'followRedirects': true // GAS里控制重定向的参数是followRedirects,不是redirect
}

var response = UrlFetchApp.fetch(url, options);
// 先拿响应文本再输出
Logger.log(response.getContentText());

可选补充

如果你的接口校验会话Cookie,需要把Postman里的Cookie值也加到headers的Cookie字段里,否则可能出现鉴权失败问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:39:03