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

ESP32 httpd服务HTTP_DELETE请求报URI未被服务端处理问题咨询

问题根因

乐鑫ESP-IDF的httpd组件原生支持HTTP_DELETE方法,该报错是HTTP服务初始化配置未开启DELETE方法权限导致的。

httpd组件默认生成的配置(通过HTTPD_DEFAULT_CONFIG()宏获取)中,method_mask字段默认仅启用HTTP_GET、HTTP_POST、HTTP_PUT三类方法,未包含HTTP_DELETE。这种情况下即使你正确注册了DELETE方法的路由处理函数,服务端也不会识别处理DELETE请求,直接返回方法不支持的错误。

修复方案

初始化HTTP服务时,在默认配置基础上追加DELETE方法的支持即可,参考代码如下:

// 初始化默认配置
httpd_config_t httpd_config = HTTPD_DEFAULT_CONFIG();
// 追加DELETE方法支持
httpd_config.method_mask |= HTTP_DELETE;

httpd_handle_t server = NULL;
// 启动httpd服务
if (httpd_start(&server, &httpd_config) == ESP_OK) {
    // 注册所有路由
    httpd_register_uri_handler(server, &get_uri);
    httpd_register_uri_handler(server, &put_uri);
    httpd_register_uri_handler(server, &post_uri);
    httpd_register_uri_handler(server, &delete_uri);
}

其他注意点

你贴出的代码存在函数名与注册handler不匹配的笔误:

  • GET处理函数定义名为getTest,路由注册时填的是testGet
  • PUT处理函数定义名为putTest,路由注册时填的是testPut
  • POST处理函数定义名为postTest,路由注册时填的是testPost
    你提到GET/PUT/POST请求可正常响应,说明这是贴代码时的手误,若实际代码也存在该问题需要同步修正,否则会触发函数找不到的运行时错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 01:42:23