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

ESP32调用Google Apps Script的GET/POST接口返回303错误如何解决

问题原因

Google Apps Script 对外发布的Web App接口会默认执行一次303重定向,将请求转发到script.googleusercontent.com域名下的实际响应地址。Postman等HTTP客户端默认开启自动跟随重定向,因此测试正常;而ESP32的HTTPClient库默认关闭该配置,因此只会拿到303重定向响应。
另外你提供的GAS代码遗漏了 Spreadsheet 实例初始化定义,会导致运行时报错。

解决方案

步骤1:修正GAS代码

补全Spreadsheet实例定义,同时指定响应的MIME类型避免解析异常,修改后代码如下:

// 补全Spreadsheet实例初始化
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('LampV2');

function doGet(e) {
  return ContentService.createTextOutput(sheet.getRange('A1').getValue())
    .setMimeType(ContentService.MimeType.TEXT);
}

function doPost(e){
  var val = e.parameter.value;
  if (val !== undefined){
    sheet.getRange('A1').setValue(val);
  }
  return ContentService.createTextOutput(sheet.getRange('A1').getValue())
    .setMimeType(ContentService.MimeType.TEXT);
}

修改完成后重新部署Web App,确保权限配置为「任何人,甚至匿名用户」可访问。

步骤2:修改ESP32代码,开启自动跟随重定向

在HTTP请求发起前添加重定向跟随配置,修改后的makeGetRequest函数如下:

void makeGetRequest(){
  if ((WiFi.status() == WL_CONNECTED)) {
    HTTPClient http;
 
    http.begin("https://script.google.com/macros/s/AKfycbyj0XWD_pLtZkoke3j4rBOf2GcxCQV2Y1qyvszP3lFTfvm6qS-ZONnohTJnQ4lEL2vh_g/exec", ca_cert);
    // 开启强制跟随重定向,最多跟随2次(GAS仅需1次重定向)
    http.setFollowRedirects(HTTPC_FORCE_FOLLOW_REDIRECTS);
    http.setRedirectLimit(2);
    
    int httpCode = http.GET();
 
    if (httpCode > 0) {
        String payload = http.getString();
        Serial.println(httpCode);
        Serial.println(payload);
      }
    else {
      Serial.println("Error on HTTP request");
    }
    http.end();
    delay(5000);
  }
}

POST请求的修改逻辑和GET完全一致,同样添加重定向配置即可。修改完成后烧录代码即可正常拿到接口返回的单元格数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:36:09