ESPHome 2026.1.5
Loading...
Searching...
No Matches
esphome::http_request Namespace Reference

Data Structures

struct  Header
 
class  HttpContainer
 
class  HttpContainerArduino
 
class  HttpContainerHost
 
class  HttpContainerIDF
 
struct  HttpReadResult
 Result of an HTTP read operation. More...
 
class  HttpRequestArduino
 
class  HttpRequestComponent
 
class  HttpRequestHost
 
class  HttpRequestIDF
 
class  HttpRequestResponseTrigger
 
class  HttpRequestSendAction
 
class  HttpRequestUpdate
 
class  OtaHttpRequestComponent
 
class  OtaHttpRequestComponentFlashAction
 

Enumerations

enum  HttpStatus {
  HTTP_STATUS_OK = 200 , HTTP_STATUS_NO_CONTENT = 204 , HTTP_STATUS_RESET_CONTENT = 205 , HTTP_STATUS_PARTIAL_CONTENT = 206 ,
  HTTP_STATUS_MULTIPLE_CHOICES = 300 , HTTP_STATUS_MOVED_PERMANENTLY = 301 , HTTP_STATUS_FOUND = 302 , HTTP_STATUS_SEE_OTHER = 303 ,
  HTTP_STATUS_NOT_MODIFIED = 304 , HTTP_STATUS_TEMPORARY_REDIRECT = 307 , HTTP_STATUS_PERMANENT_REDIRECT = 308 , HTTP_STATUS_BAD_REQUEST = 400 ,
  HTTP_STATUS_UNAUTHORIZED = 401 , HTTP_STATUS_FORBIDDEN = 403 , HTTP_STATUS_NOT_FOUND = 404 , HTTP_STATUS_METHOD_NOT_ALLOWED = 405 ,
  HTTP_STATUS_NOT_ACCEPTABLE = 406 , HTTP_STATUS_LENGTH_REQUIRED = 411 , HTTP_STATUS_INTERNAL_ERROR = 500
}
 
enum class  HttpReadStatus : uint8_t { OK , ERROR , TIMEOUT }
 Status of a read operation. More...
 
enum class  HttpReadLoopResult : uint8_t {
  DATA , COMPLETE , RETRY , ERROR ,
  TIMEOUT
}
 Result of processing a non-blocking read with timeout (for manual loops) More...
 
enum  OtaHttpRequestError : uint8_t { OTA_MD5_INVALID = 0x10 , OTA_BAD_URL = 0x11 , OTA_CONNECTION_ERROR = 0x12 }
 

Functions

bool is_redirect (int const status)
 Returns true if the HTTP status code is a redirect.
 
bool is_success (int const status)
 Checks if the given HTTP status code indicates a successful request.
 
HttpReadLoopResult http_read_loop_result (int bytes_read_or_error, uint32_t &last_data_time, uint32_t timeout_ms, bool is_read_complete)
 Process a read result with timeout tracking and delay handling.
 
HttpReadResult http_read_fully (HttpContainer *container, uint8_t *buffer, size_t total_size, size_t chunk_size, uint32_t timeout_ms)
 Read data from HTTP container into buffer with timeout handling Handles feed_wdt, yield, and timeout checking internally.
 

Enumeration Type Documentation

◆ HttpReadLoopResult

enum class esphome::http_request::HttpReadLoopResult : uint8_t
strong

Result of processing a non-blocking read with timeout (for manual loops)

Enumerator
DATA 

Data was read, process it.

COMPLETE 

All content has been read, caller should exit loop.

RETRY 

No data yet, already delayed, caller should continue loop.

ERROR 

Read error, caller should exit loop.

TIMEOUT 

Timeout waiting for data, caller should exit loop.

Definition at line 129 of file http_request.h.

◆ HttpReadStatus

enum class esphome::http_request::HttpReadStatus : uint8_t
strong

Status of a read operation.

Enumerator
OK 

Read completed successfully.

ERROR 

Read error occurred.

TIMEOUT 

Timeout waiting for data.

Definition at line 116 of file http_request.h.

◆ HttpStatus

Enumerator
HTTP_STATUS_OK 
HTTP_STATUS_NO_CONTENT 
HTTP_STATUS_RESET_CONTENT 
HTTP_STATUS_PARTIAL_CONTENT 
HTTP_STATUS_MULTIPLE_CHOICES 
HTTP_STATUS_MOVED_PERMANENTLY 
HTTP_STATUS_FOUND 
HTTP_STATUS_SEE_OTHER 
HTTP_STATUS_NOT_MODIFIED 
HTTP_STATUS_TEMPORARY_REDIRECT 
HTTP_STATUS_PERMANENT_REDIRECT 
HTTP_STATUS_BAD_REQUEST 
HTTP_STATUS_UNAUTHORIZED 
HTTP_STATUS_FORBIDDEN 
HTTP_STATUS_NOT_FOUND 
HTTP_STATUS_METHOD_NOT_ALLOWED 
HTTP_STATUS_NOT_ACCEPTABLE 
HTTP_STATUS_LENGTH_REQUIRED 
HTTP_STATUS_INTERNAL_ERROR 

Definition at line 26 of file http_request.h.

◆ OtaHttpRequestError

Enumerator
OTA_MD5_INVALID 
OTA_BAD_URL 
OTA_CONNECTION_ERROR 

Definition at line 19 of file ota_http_request.h.

Function Documentation

◆ http_read_fully()

HttpReadResult esphome::http_request::http_read_fully ( HttpContainer * container,
uint8_t * buffer,
size_t total_size,
size_t chunk_size,
uint32_t timeout_ms )
inline

Read data from HTTP container into buffer with timeout handling Handles feed_wdt, yield, and timeout checking internally.

Parameters
containerThe HTTP container to read from
bufferBuffer to read into
total_sizeTotal bytes to read
chunk_sizeMaximum bytes per read call
timeout_msRead timeout in milliseconds
Returns
HttpReadResult with status and error_code on failure; use container->get_bytes_read() for total bytes read

Definition at line 245 of file http_request.h.

◆ http_read_loop_result()

HttpReadLoopResult esphome::http_request::http_read_loop_result ( int bytes_read_or_error,
uint32_t & last_data_time,
uint32_t timeout_ms,
bool is_read_complete )
inline

Process a read result with timeout tracking and delay handling.

Parameters
bytes_read_or_errorReturn value from read() - positive for bytes read, negative for error
last_data_timeTime of last successful read, updated when data received
timeout_msMaximum time to wait for data
is_read_completeWhether all expected content has been read (from HttpContainer::is_read_complete())
Returns
How the caller should proceed - see HttpReadLoopResult enum

Definition at line 143 of file http_request.h.

◆ is_redirect()

bool esphome::http_request::is_redirect ( int const status)
inline

Returns true if the HTTP status code is a redirect.

Parameters
statusthe HTTP status code to check
Returns
true if the status code is a redirect, false otherwise

Definition at line 60 of file http_request.h.

◆ is_success()

bool esphome::http_request::is_success ( int const status)
inline

Checks if the given HTTP status code indicates a successful request.

A successful request is one where the status code is in the range 200-299

Parameters
statusthe HTTP status code to check
Returns
true if the status code indicates a successful request, false otherwise

Definition at line 81 of file http_request.h.