To create an HTTP server in Rust and read the request body as form url encoded, we can use the Hyper crate. Here's an example code snippet:
main.rs1597 chars52 lines
In this example code, we create a new HTTP server using the hyper::Server::bind()
method. We define a handle_request()
function which takes in a hyper::Request
as input and returns a hyper::Response
as output.
Inside handle_request()
, we first check if the request method is POST
and the request path is /form
. If so, we read the request body as bytes using the hyper::body::to_bytes()
method and parse it as a form url encoded using the url::form_urlencoded::parse()
method.
Afterwards, we can do something with the form data, e.g. print it to console. Finally, we return a response with status code 200 OK
and an empty body.
If the request method or path does not match, we return a 404 Not Found
response.
Note that this example code uses the tokio
runtime for asynchronous programming. We also need to include hyper
, futures
, and url
as dependencies in Cargo.toml
.
gistlibby LogSnag