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

Google Apps Script中如何从Set-Cookie头提取hms_sid的Cookie值

Google Apps Script 提取Set-Cookie中指定值的实现方案

问题场景

开发中解析HTTP响应头JSON对象时,Set-Cookie字段为存储多条Cookie规则的数组,需要从中提取hms_sid对应的Cookie值,示例响应头结构如下:

const allHeaders = {"Strict-Transport-Security":"max-age=31536000","Timing-Allow-Origin":"*","s_ip":"1.5.295.221","Server":"Asia","Vary":"Accept-Encoding","x-application-context":"shop-buyer-s.7001","s_group":"buyer-sessio","Content-Language":"zh-CN","Access-Control-Allow-Headers":"Origin, x-ua, x-umidtoken, x-csrf-token, X-Requested-With, Content-Type, Accept","Set-Cookie":["hms_cid=80dcf576-a581-4d43-8302-1605fe36565c; Domain=.hms.zn; Expires=Sun, 09-Jul-2023 04:39:13 GMT; Path=/","hms_sid=112120422020a413958ddf33139b516b; Domain=.hms.zn; Path=/; HttpOnly","_tb_token_=e8eafb9bebe63; Domain=.hms.zn; Path=/; HttpOnly"],"Transfer-Encoding":"chunked","object-status":"ttl=2592000,age=42,gip=121.43.99.68","Connection":["keep-alive","Transfer-Encoding"],"s_tag":"285873024335988|0^|^^","s_tid":"21410a7016573415536295456ef332","eagleeye-traceid":"21410a7016573415536295456ef332","s_v":"4.0.2.0","Content-Encoding":"gzip","P3P":"CP='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR'","Date":"Sat, 09 Jul 2022 04:39:13 GMT","Access-Control-Max-Age":"3600","s_ucode":"Asia:CENTER","Access-Control-Allow-Methods":"POST, GET, OPTIONS, DELETE","Content-Type":"text/html;charset=UTF-8","s_status":"STATUS_NOT_EXISTED"}

目标提取值为112120422020a413958ddf33139b516b。

实现代码

直接遍历Set-Cookie数组,按Cookie格式规则拆分匹配即可,代码可直接在Google Apps Script环境运行:

const cookieList = allHeaders['Set-Cookie'];
let targetSid = '';

for (const cookie of cookieList) {
  // 单条Cookie格式为 键=值;属性1;属性2,先拆分出最前面的键值对
  const [corePair] = cookie.split(';');
  const [name, value] = corePair.split('=');
  if (name.trim() === 'hms_sid') {
    targetSid = value;
    break;
  }
}

// 最终得到hms_sid对应的值
console.log(targetSid);

逻辑说明

  • 你已经完成第一步:通过allHeaders['Set-Cookie']拿到了存储所有Cookie条目的数组
  • 单条Cookie字符串的固定格式为Cookie名=Cookie值后接分号分隔的域名、过期时间、路径等属性,因此第一个分号前的内容就是核心键值对
  • 拆分键值对后匹配名称为hms_sid的条目,取出对应的值即可,trim()用于处理可能存在的多余空格,避免匹配失败
  • 匹配到目标值后直接终止遍历,减少不必要的循环计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:57:19