use hreq::prelude::*; #[tokio::main] async fn main() { let mut server = Server::new(); server.at("/hello/:name").get(hello_there); let (shut, addr) = server.listen(0).await.expect("Failed to listen"); println!("Listening to: {}", addr); let url = format!("http://127.0.0.1:{}/hello/Martin", addr.port()); println!("Calling: {}", url); let response = http::Request::get(url) .call() .await .expect("Failed to call"); println!("Response status: {}", response.status()); let body = response .into_body() .read_to_string() .await .expect("Failed to read body"); println!("Body:\n{}", body); shut.shutdown().await } async fn hello_there(req: http::Request) -> String { let name = req.path_param("name").unwrap(); format!("Hello there {}!\n", name) }