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

如何在Google Apps Script的doGet()中获取Web Apps请求头?

在Google Apps Script Web Apps中获取请求头

你说得对,默认的doGet(e)参数e确实不包含请求头信息——它只负责传递请求参数、查询字符串这类基础请求内容。要拿到请求头,得借助Google Apps Script提供的请求上下文API来获取完整的请求细节。

解决方案代码示例

修改你的doGet函数,加入获取请求头的逻辑:

function doGet(e) {
  // 获取当前Web Apps请求的上下文对象
  const requestContext = ScriptApp.getService().getCurrentContext();
  // 从上下文中提取请求头信息
  const requestHeaders = requestContext.getRequest().headers;
  
  // 打印请求头到日志方便查看
  console.log("请求头详情:", requestHeaders);
  // 也可以把请求头返回给客户端,直观看到结果
  return ContentService.createTextOutput(JSON.stringify(requestHeaders));
}

关键说明

  • ScriptApp.getService().getCurrentContext():这个方法能拿到当前请求的完整上下文,里面包含了请求头、请求方法、客户端IP等你需要的细节,是获取请求头的核心。
  • 适配你的部署配置:因为你设置了**执行身份为“我本人”**且允许匿名访问,这种情况下依然能获取到大部分标准请求头(比如User-Agent、Accept、Host等),但和用户身份绑定的特殊头(如Authorization)会被过滤,毕竟是匿名访问场景。

测试小技巧

部署修改后的Web Apps后,你可以用curl工具发送带自定义头的请求来验证:

curl -H "X-My-Custom-Header: TestValue123" "https://script.google.com/macros/s/你的部署ID/exec?key=value"

然后去脚本编辑器的「查看」→「日志」里,就能看到包含自定义头在内的所有请求头信息了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:14:48