From 7c36dfa1fcab4fd140093e34076ae5a0518bebea Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Mon, 16 Feb 2026 18:24:41 -0600 Subject: [PATCH] [http_request] Ensure start() vector overload lowercases collect_headers The vector overload of start() was passing collect_headers directly to perform() without lowercasing. This meant callers using get()/post() with mixed-case header names (e.g. {"ETag"}) would fail to match against the lowercased header names from the HTTP response. --- esphome/components/http_request/http_request.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/esphome/components/http_request/http_request.h b/esphome/components/http_request/http_request.h index dacf691d38..06c87bb4ab 100644 --- a/esphome/components/http_request/http_request.h +++ b/esphome/components/http_request/http_request.h @@ -374,7 +374,12 @@ class HttpRequestComponent : public Component { std::shared_ptr start(const std::string &url, const std::string &method, const std::string &body, const std::list
&request_headers, const std::vector &collect_headers) { - return this->perform(url, method, body, request_headers, collect_headers); + std::vector lower_case_collect_headers; + lower_case_collect_headers.reserve(collect_headers.size()); + for (const auto &header : collect_headers) { + lower_case_collect_headers.push_back(str_lower_case(header)); + } + return this->perform(url, method, body, request_headers, lower_case_collect_headers); } protected: