Struct httparse::Request [] [src]

pub struct Request<'headers, 'buf> {
    pub method: Option<&'buf str>,
    pub path: Option<&'buf str>,
    pub version: Option<u8>,
    pub headers: &'headers mut [Header<'buf>],
}

A parsed Request.

The optional values will be None if a parse was not complete, and did not parse the associated property. This allows you to inspect the parts that could be parsed, before reading more, in case you wish to exit early.

Example

let buf = b"GET /404 HTTP/1.1\r\nHost:";
let mut headers = [httparse::EMPTY_HEADER; 16];
let mut req = httparse::Request::new(&mut headers);
let res = req.parse(buf).unwrap();
if res.is_partial() {
    match req.path {
        Some(ref path) => {
            // check router for path.
            // /404 doesn't exist? we could stop parsing
        },
        None => {
            // must read more and parse again
        }
    }
}

Fields

method

The request method, such as GET.

path

The request path, such as /about-us.

version

The request version, such as HTTP/1.1.

headers

The request headers.

Methods

impl<'h, 'b> Request<'h, 'b>

fn new(headers: &'h mut [Header<'b>]) -> Request<'h, 'b>

Creates a new Request, using a slice of headers you allocate.

fn parse(&mut self, buf: &'b [u8]) -> Result<usize>

Try to parse a buffer of bytes into the Request.