Table of Contents

Advertisement

Chapter 2. API Reference
Values:
HttpStatus_Ok = 200
HttpStatus_MultipleChoices = 300
HttpStatus_MovedPermanently = 301
HttpStatus_Found = 302
HttpStatus_TemporaryRedirect = 307
HttpStatus_BadRequest = 400
HttpStatus_Unauthorized = 401
HttpStatus_Forbidden = 403
HttpStatus_NotFound = 404
HttpStatus_InternalError = 500

2.3.6 HTTP Server

Overview
The HTTP Server component provides an ability for running a lightweight web server on ESP32-S2. Following are
detailed steps to use the API exposed by HTTP Server:
• httpd_start(): Creates an instance of HTTP server, allocate memory/resources for it depending upon
the specified configuration and outputs a handle to the server instance. The server has both, a listening socket
(TCP) for HTTP traffic, and a control socket (UDP) for control signals, which are selected in a round robin
fashion in the server task loop. The task priority and stack size are configurable during server instance creation
by passing httpd_config_t structure to httpd_start(). TCP traffic is parsed as HTTP requests and, depending
on the requested URI, user registered handlers are invoked which are supposed to send back HTTP response
packets.
• httpd_stop(): This stops the server with the provided handle and frees up any associated mem-
ory/resources. This is a blocking function that first signals a halt to the server task and then waits for the
task to terminate. While stopping, the task will close all open connections, remove registered URI handlers
and reset all session context data to empty.
• httpd_register_uri_handler():
httpd_uri_t structure which has members including uri name, method type (eg. HTTPD_GET/
HTTPD_POST/HTTPD_PUT etc.), function pointer of type esp_err_t *handler (httpd_req_t
*req) and user_ctx pointer to user context data.
Application Example
/* Our URI handler function to be called during GET /uri request */
esp_err_t get_handler(httpd_req_t *req)
{
/* Send a simple response */
const
char
httpd_resp_send(req, resp, HTTPD_RESP_USE_STRLEN);
return
ESP_OK;
}
/* Our URI handler function to be called during POST /uri request */
esp_err_t post_handler(httpd_req_t *req)
{
/* Destination buffer for content of HTTP POST request.
* httpd_req_recv() accepts char* only, but content could
* as well be any binary data (needs type casting).
Espressif Systems
A URI handler is registered by passing object of type
resp[]
=
"URI GET
Response";
Submit Document Feedback
571
(continues on next page)
Release v4.4

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the ESP32-S2 and is the answer not in the manual?

Subscribe to Our Youtube Channel

Table of Contents

Save PDF