diff --git a/examples/params.rs b/examples/params.rs index 38c9bfabad..87c2368928 100644 --- a/examples/params.rs +++ b/examples/params.rs @@ -68,6 +68,29 @@ async fn param_example(req: Request) -> Result, hyper::Erro let body = format!("Hello {}, your number is {}", name, number); Ok(Response::new(body.into())) } + (&Method::GET, "/get") => { + let query = if let Some(q) = req.uri().query() { + q + } else { + return Ok(Response::builder() + .status(StatusCode::UNPROCESSABLE_ENTITY) + .body(MISSING.into()) + .unwrap()); + }; + let params = form_urlencoded::parse(query.as_bytes()) + .into_owned() + .collect::>(); + let page = if let Some(p) = params.get("page") { + p + } else { + return Ok(Response::builder() + .status(StatusCode::UNPROCESSABLE_ENTITY) + .body(MISSING.into()) + .unwrap()); + }; + let body = format!("You requested {}", page); + Ok(Response::new(body.into())) + } _ => Ok(Response::builder() .status(StatusCode::NOT_FOUND) .body(Body::empty())