[http_request] Always return defined server response status (#7689)

This commit is contained in:
Clyde Stubbs 2024-10-29 11:12:32 +11:00 committed by GitHub
parent 858d97ccef
commit 88627095fb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 4 additions and 6 deletions

View File

@ -116,8 +116,7 @@ std::shared_ptr<HttpContainer> HttpRequestArduino::start(std::string url, std::s
if (container->status_code < 200 || container->status_code >= 300) {
ESP_LOGE(TAG, "HTTP Request failed; URL: %s; Code: %d", url.c_str(), container->status_code);
this->status_momentary_error("failed", 1000);
container->end();
return nullptr;
// Still return the container, so it can be used to get the status code and error message
}
int content_length = container->client_.getSize();

View File

@ -172,8 +172,7 @@ std::shared_ptr<HttpContainer> HttpRequestIDF::start(std::string url, std::strin
ESP_LOGE(TAG, "HTTP Request failed; URL: %s; Code: %d", url.c_str(), container->status_code);
this->status_momentary_error("failed", 1000);
esp_http_client_cleanup(client);
return nullptr;
return container;
}
int HttpContainerIDF::read(uint8_t *buf, size_t max_len) {

View File

@ -106,7 +106,7 @@ uint8_t OtaHttpRequestComponent::do_ota_() {
auto container = this->parent_->get(url_with_auth);
if (container == nullptr) {
if (container == nullptr || container->status_code != 200) {
return OTA_CONNECTION_ERROR;
}

View File

@ -31,7 +31,7 @@ void HttpRequestUpdate::setup() {
void HttpRequestUpdate::update() {
auto container = this->request_parent_->get(this->source_url_);
if (container == nullptr) {
if (container == nullptr || container->status_code != 200) {
std::string msg = str_sprintf("Failed to fetch manifest from %s", this->source_url_.c_str());
this->status_set_error(msg.c_str());
return;