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

如何在Google App Script中通过Squid代理发送类CURL请求

解决方案:Google Apps Script 配置Squid代理实现POST请求

你的需求是等效实现指定curl命令的请求,核心是通过Squid代理向目标URL发送POST请求。Google Apps Script的UrlFetchApp支持代理配置,只需在请求选项中添加对应参数即可,以下是修改后的完整代码:

function doPost(e) {
  if(typeof e !== 'undefined'){
    const req = e.postData.contents;
    makeHTTPrequest(req);
  }
}

function makeHTTPrequest(request){
  var d = new Date();
  request = request + d.getTime();

  const secret =  "SECRET_EXAMPLE";
  
  var byteSignature = Utilities.computeHmacSha256Signature(request, secret);
  // 转换字节数组为十六进制字符串
  var signature = byteSignature.reduce(function(str,chr){
    chr = (chr < 0 ? chr + 256 : chr).toString(16);
    return str + (chr.length==1?'0':'') + chr;
  },'');

  request = request + "&signature=" + signature;

  // 目标URL:对应curl中的https://webhook.site/xxx
  const targetUrl = "https://webhook.site/dcf61fb9-bbb1-452e-9843-7d75b222abed";
  // Squid代理地址
  const proxyUrl = "http://35.225.50.255:3128";

  const response = UrlFetchApp.fetch(targetUrl, {
    "method": "POST",
    "headers": {
      "X-MBX-APIKEY": "exmplMBIKEY"
    },
    "payload": request,
    // 配置代理
    "proxyUrl": proxyUrl,
    // 对应curl的-L参数,跟随重定向
    "followRedirects": true,
    // 如果代理需要用户名密码,取消注释下面两行
    // "proxyUsername": "your_proxy_user",
    // "proxyPassword": "your_proxy_pass"
  });

  Logger.log("Response code is %s", response.getResponseCode());
  Logger.log(response.getContentText());
}

关键修改说明:

  • 修正请求目标:将之前错误设置的代理地址替换为实际需要请求的目标URL(即curl中的https://webhook.site/xxx)。
  • 添加代理配置:在请求选项中加入proxyUrl参数,指定你的Squid代理服务器地址。
  • 开启重定向跟随:显式设置followRedirects: true,对应curl命令中的-L参数。
  • 可选代理认证:如果你的Squid代理开启了用户名密码认证,添加proxyUsername和proxyPassword参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 08:40:32