Expand description
HTTP server
Provides an HTTP(S) server in EspHttpServer, plus all related structs.
Typical usage of EspHttpServer involves creating a function (or closure)
for every URI+method that the server is meant to handle. A minimal server that
only handles HTTP GET requests to index.html looks like this:
use esp_idf_svc::http::server::{Configuration, EspHttpServer};
let mut server = EspHttpServer::new(&Configuration::default())?;
server.fn_handler("/index.html", Method::Get, |request| {
request
.into_ok_response()?
.write_all(b"<html><body>Hello world!</body></html>")
})?;Note that the server is automatically started when instantiated, and stopped
when dropped. If you want to keep the server running indefinitely then
make sure it’s not dropped - you may add an infinite loop after the server
is created, use core::mem::forget, or keep around a reference to it somehow.
You can find an example of handling GET/POST requests at examples/http_server.rs.
You can find an example of HTTP+Websockets at examples/http_ws_server.rs.
By default, the ESP-IDF library allocates 512 bytes for reading and parsing
HTTP headers, but desktop web browsers might send headers longer than that.
If this becomes a problem, add CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024 to your
sdkconfig.defaults file.
Re-exports§
pub use super::*;
Modules§
Structs§
- Chain
Handler - Chain
Root - Composite
Handler - Configuration
- EspHttp
Connection - EspHttp
RawConnection - EspHttp
Server - FnHandler
- Keep
Alive - Nonstatic
Chain - A newtype wrapper for
ChainHandlerthat allows non-`’static`` handlers in the chain to be registered and passed to the server. - Request
- Response
Traits§
Functions§
- fn_
handler - Wraps the given function into an
FnHandler.