pub struct Request {
pub method: String,
pub path: String,
pub version: String,
}
Expand description
Represents an HTTP request, containing the HTTP method, the requested path, and the HTTP version.
Fields§
§method: String
HTTP method of the request.
path: String
Requested path.
version: String
HTTP version of the request.
Implementations§
Source§impl Request
impl Request
Sourcepub fn from_stream(stream: &TcpStream) -> Result<Self, ServerError>
pub fn from_stream(stream: &TcpStream) -> Result<Self, ServerError>
Attempts to create a Request
from the provided TCP stream by reading the first line.
This method reads the first line of an HTTP request from the given TCP stream,
parses it, and constructs a Request
instance if the input is valid.
§Arguments
stream
- A reference to theTcpStream
from which the request will be read.
§Returns
Ok(Request)
- If the request is valid and successfully parsed.Err(ServerError)
- If the request is malformed, cannot be read, or is invalid.
§Errors
This function returns a ServerError::InvalidRequest
error if:
- The request line is too long (exceeds
MAX_REQUEST_LINE_LENGTH
) - The request line does not contain exactly three parts
- The HTTP method is not recognized
- The request path does not start with a forward slash
- The HTTP version is not supported (only HTTP/1.0 and HTTP/1.1 are accepted)
§Examples
use std::net::TcpStream;
use http_handle::request::Request;
fn handle_client(stream: TcpStream) {
match Request::from_stream(&stream) {
Ok(request) => println!("Received request: {}", request),
Err(e) => eprintln!("Error parsing request: {}", e),
}
}
Sourcepub fn method(&self) -> &str
pub fn method(&self) -> &str
Returns the HTTP method of the request.
§Returns
A string slice containing the HTTP method (e.g., “GET”, “POST”).
Trait Implementations§
impl StructuralPartialEq for Request
Auto Trait Implementations§
impl Freeze for Request
impl RefUnwindSafe for Request
impl Send for Request
impl Sync for Request
impl Unpin for Request
impl UnwindSafe for Request
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more