# Module http::request [−] [src]

HTTP request types.

This module contains structs related to HTTP requests, notably the `Request` type itself as well as a builder to create requests. Typically you’ll import the `http::Request` type rather than reaching into this module itself.

# Examples

Creating a `Request` to send

    use http::{Request, Response};

    let mut request = Request::builder()
        .uri("https://www.rust-lang.org/")
        .header("User-Agent", "my-awesome-agent/1.0");

    if needs_awesome_header() {
        request = request.header("Awesome", "yes");
    }

    let response = send(request.body(()).unwrap());

    fn send(req: Request<()>) -> Response<()> {
        // ...
    }

Inspecting a request to see what was sent.

    use http::{Request, Response, StatusCode};

    fn respond_to(req: Request<()>) -> http::Result<Response<()>> {
        if req.uri() != "/awesome-url" {
            return Response::builder()
                .status(StatusCode::NOT_FOUND)
                .body(())
        }

        let has_awesome_header = req.headers().contains_key("Awesome");
        let body = req.body();

        // ...
    }

## Structs

Builder | An HTTP request builder
Parts | Component parts of an HTTP `Request`
Request | Represents an HTTP request.