Module http::request

source ·
Expand description

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.


Creating a Request to send

use http::{Request, Response};

let mut request = Request::builder()
    .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()

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

    // ...


  • An HTTP request builder
  • Component parts of an HTTP Request
  • Represents an HTTP request.