PL::HttpServer class
-
class HttpServer : public PL::NetworkServer
HTTP/HTTPS server class.
Public Functions
Creates an HTTP server with shared header buffer.
- Parameters:
headerBuffer – header buffer
-
HttpServer(size_t headerBufferSize = defaultHeaderBufferSize)
Creates an HTTP server and allocate header buffer.
- Parameters:
headerBufferSize – header buffer size
Creates an HTTPS server with shared header buffer.
- Parameters:
certificate – certificate
privateKey – private key
headerBuffer – header buffer
-
HttpServer(const char *certificate, const char *privateKey, size_t headerBufferSize = defaultHeaderBufferSize)
Creates an HTTPS server and allocate header buffer.
- Parameters:
certificate – certificate
privateKey – private key
headerBufferSize – header buffer size
-
~HttpServer()
Note
Every derived class must call StopTask as the first statement of its own destructor so that the server task does not call HandleRequest on a partially destroyed object.
-
virtual esp_err_t Lock(TickType_t timeout = portMAX_DELAY) override
Locks the object.
- Parameters:
timeout – timeout in FreeRTOS ticks
- Returns:
error code
-
virtual esp_err_t Unlock() override
Unlocks the object.
- Returns:
error code
-
virtual esp_err_t Enable() override
Note
The control socket (used to stop the httpd task) is bound to the same UDP port number as the server’s TCP port, so that port is also silently claimed on UDP.
-
virtual esp_err_t Disable() override
Disables the server.
- Returns:
error code
-
virtual bool IsEnabled() override
Checks if the server is enabled.
- Returns:
true if the server is enabled
-
virtual uint16_t GetPort() override
Gets listening port.
- Returns:
port
-
virtual esp_err_t SetPort(uint16_t port) override
Sets listening port.
- Parameters:
port – port
- Returns:
error code
-
virtual size_t GetMaxNumberOfClients() override
Gets the maximum number of server clients.
- Returns:
number of clients
-
virtual esp_err_t SetMaxNumberOfClients(size_t maxNumberOfClients) override
Sets the maximum number of server clients.
- Parameters:
maxNumberOfClients – number of clients
- Returns:
error code
-
TickType_t GetReadTimeout()
Gets the read operation timeout.
- Returns:
timeout in FreeRTOS ticks
-
esp_err_t SetReadTimeout(TickType_t timeout)
Sets the read operation timeout.
- Parameters:
timeout – timeout in FreeRTOS ticks
- Returns:
error code
-
TickType_t GetWriteTimeout()
Gets the write operation timeout.
- Returns:
timeout in FreeRTOS ticks
-
esp_err_t SetWriteTimeout(TickType_t timeout)
Sets the write operation timeout.
- Parameters:
timeout – timeout in FreeRTOS ticks
- Returns:
error code
-
esp_err_t SetTaskParameters(const TaskParameters &taskParameters)
Sets the server task parameters.
- Parameters:
taskParameters – task parameters
- Returns:
error code
-
std::string GetName()
Gets the server name.
- Returns:
name
-
void SetName(const std::string &name)
Sets the server name.
- Parameters:
name – name
Public Members
Public Static Attributes
-
static const std::string defaultHttpName
Default HTTP server name.
-
static const std::string defaultHttpsName
Default HTTPS server name.
-
static constexpr uint16_t defaultHttpPort = 80
Default HTTP port.
-
static constexpr uint16_t defaultHttpsPort = 443
Default HTTPS port.
-
static constexpr size_t defaultMaxNumberOfClients = 1
Default maximum number of server clients.
-
static constexpr TickType_t defaultReadTimeout = 5000 / portTICK_PERIOD_MS
Default read operation timeout in FreeRTOS ticks.
-
static constexpr TickType_t defaultWriteTimeout = 5000 / portTICK_PERIOD_MS
Default write operation timeout in FreeRTOS ticks.
-
static const TaskParameters defaultTaskParameters
Default server task parameters.
-
static constexpr size_t defaultHeaderBufferSize = 1024
Default header buffer size.
Protected Functions
-
esp_err_t StopTask()
Stops the server and waits for its task to exit.
Note
Must be called as the first statement of the destructor of every derived class so that the server task does not call HandleRequest on a partially destroyed object.
- Returns:
error code
-
virtual esp_err_t HandleRequest(HttpServerTransaction &transaction) = 0
Handles the HTTP request.
Note
Enable, Disable and the configuration setters may be called from here; the actual restart is deferred to a separate task and runs after the response is sent.
- Parameters:
transaction – transaction
- Returns:
error code