pub struct Request {
pub method: Method,
pub host: String,
pub version: HttpVersion,
pub path: String,
pub querys: HashMap<String, String, BuildHasherDefault<Hasher>>,
pub headers: HashMap<String, VecDeque<String>, BuildHasherDefault<Hasher>>,
pub body: Vec<u8>,
}Expand description
HTTP request representation.
Contains all components of an HTTP request.
Fields§
§method: MethodHTTP request method.
host: StringRequest host.
version: HttpVersionHTTP protocol version.
path: StringRequest path.
querys: HashMap<String, String, BuildHasherDefault<Hasher>>URL query parameters.
headers: HashMap<String, VecDeque<String>, BuildHasherDefault<Hasher>>HTTP headers collection.
body: Vec<u8>Request body content.
Implementations§
Source§impl Request
impl Request
Sourcepub fn try_get_query<K>(&self, key: K) -> Option<String>
pub fn try_get_query<K>(&self, key: K) -> Option<String>
Sourcepub fn try_get_header<K>(&self, key: K) -> Option<VecDeque<String>>
pub fn try_get_header<K>(&self, key: K) -> Option<VecDeque<String>>
Sourcepub fn get_header<K>(&self, key: K) -> VecDeque<String>
pub fn get_header<K>(&self, key: K) -> VecDeque<String>
Sourcepub fn try_get_header_front<K>(&self, key: K) -> Option<String>
pub fn try_get_header_front<K>(&self, key: K) -> Option<String>
Sourcepub fn get_header_front<K>(&self, key: K) -> String
pub fn get_header_front<K>(&self, key: K) -> String
Sourcepub fn try_get_header_back<K>(&self, key: K) -> Option<String>
pub fn try_get_header_back<K>(&self, key: K) -> Option<String>
Sourcepub fn get_header_back<K>(&self, key: K) -> String
pub fn get_header_back<K>(&self, key: K) -> String
Sourcepub fn try_get_header_size<K>(&self, key: K) -> Option<usize>
pub fn try_get_header_size<K>(&self, key: K) -> Option<usize>
Sourcepub fn get_header_size<K>(&self, key: K) -> usize
pub fn get_header_size<K>(&self, key: K) -> usize
Sourcepub fn get_headers_values_size(&self) -> usize
pub fn get_headers_values_size(&self) -> usize
Retrieves the total number of header values across all headers.
§Returns
usize- The total count of all header values.
Sourcepub fn get_headers_size(&self) -> usize
pub fn get_headers_size(&self) -> usize
Sourcepub fn has_header<K>(&self, key: K) -> bool
pub fn has_header<K>(&self, key: K) -> bool
Sourcepub fn has_header_value<K, V>(&self, key: K, value: V) -> bool
pub fn has_header_value<K, V>(&self, key: K, value: V) -> bool
Tries to parse cookies from the Cookie header.
This method retrieves the Cookie header value and parses it into
a collection of key-value pairs representing the cookies.
§Returns
Option<Cookies>- The parsed cookies if the header exists, otherwiseNone.
Gets a cookie value by its key.
This method first parses the cookies from the Cookie header,
then retrieves the value for the specified key.
§Arguments
AsRef<str>- The cookie key (implements AsRef).
§Returns
CookieValue- The cookie value.
§Panics
This function will panic if the Cookie header is not found
or the cookie key does not exist.
Sourcepub fn get_upgrade_type(&self) -> UpgradeType
pub fn get_upgrade_type(&self) -> UpgradeType
Retrieves the upgrade type from the request headers.
This method looks for the UPGRADE header and attempts to parse its value
as_ref an UpgradeType. If the header is missing or the value is invalid,
it returns the default UpgradeType.
§Returns
UpgradeType- The parsed upgrade type.
Sourcepub fn get_body_string(&self) -> String
pub fn get_body_string(&self) -> String
Retrieves the body content of the request as a UTF-8 encoded string.
This method uses String::from_utf8_lossy to convert the byte slice returned by self.get_body() as a string.
If the byte slice contains invalid UTF-8 sequences, they will be replaced with the Unicode replacement character ().
§Returns
String- The body content as a string.
Sourcepub fn try_get_body_json<T>(&self) -> Result<T, Error>where
T: DeserializeOwned,
pub fn try_get_body_json<T>(&self) -> Result<T, Error>where
T: DeserializeOwned,
Deserializes the body content of the request as_ref a specified type T.
This method first retrieves the body content as a byte slice using self.get_body().
It then attempts to deserialize the byte slice as_ref the specified type T using json_from_slice.
§Arguments
DeserializeOwned- The target type to deserialize as_ref (must implement DeserializeOwned).
§Returns
Result<T, serde_json::Error>- The deserialization result.
Sourcepub fn get_body_json<T>(&self) -> Twhere
T: DeserializeOwned,
pub fn get_body_json<T>(&self) -> Twhere
T: DeserializeOwned,
Deserializes the body content of the request as_ref a specified type T.
This method first retrieves the body content as a byte slice using self.get_body().
It then attempts to deserialize the byte slice as_ref the specified type T using json_from_slice.
§Arguments
DeserializeOwned- The target type to deserialize as_ref (must implement DeserializeOwned).
§Returns
T- The deserialized body content.
§Panics
This function will panic if the deserialization fails.
Sourcepub fn is_ws_upgrade_type(&self) -> bool
pub fn is_ws_upgrade_type(&self) -> bool
Checks whether the WebSocket upgrade is enabled for this request.
This method determines if the UPGRADE header indicates a WebSocket connection.
§Returns
bool- Whether WebSocket upgrade is enabled.
Sourcepub fn is_h2c_upgrade_type(&self) -> bool
pub fn is_h2c_upgrade_type(&self) -> bool
Checks if the current upgrade type is HTTP/2 cleartext (h2c).
§Returns
bool- Whether the upgrade type is h2c.
Sourcepub fn is_tls_upgrade_type(&self) -> bool
pub fn is_tls_upgrade_type(&self) -> bool
Checks if the current upgrade type is TLS (any version).
§Returns
bool- Whether the upgrade type is TLS.
Sourcepub fn is_unknown_upgrade_type(&self) -> bool
pub fn is_unknown_upgrade_type(&self) -> bool
Sourcepub fn is_enable_keep_alive(&self) -> bool
pub fn is_enable_keep_alive(&self) -> bool
Determines if a keep-alive connection should be enabled for this request.
This function checks the Connection header and the HTTP version to determine
if keep-alive should be enabled. The logic is as follows:
- If the
Connectionheader exists:- Returns
trueif the header value is “keep-alive” (case-insensitive). - Returns
falseif the header value is “close” (case-insensitive).
- Returns
- If no
Connectionheader is present:- Returns
trueif the HTTP version is 1.1 or higher. - Returns
falseotherwise.
- Returns
§Returns
bool- Whether keep-alive should be enabled.
Sourcepub fn is_disable_keep_alive(&self) -> bool
pub fn is_disable_keep_alive(&self) -> bool
Determines if keep-alive should be disabled for this request.
§Returns
bool- Whether keep-alive should be disabled.
Source§impl Request
impl Request
pub fn get_method(&self) -> &Method
pub fn get_host(&self) -> &String
pub fn get_version(&self) -> &HttpVersion
pub fn get_path(&self) -> &String
pub fn get_querys(&self) -> &HashMap<String, String, BuildHasherDefault<Hasher>>
pub fn get_headers( &self, ) -> &HashMap<String, VecDeque<String>, BuildHasherDefault<Hasher>>
pub fn get_body(&self) -> &Vec<u8> ⓘ
Source§impl Request
impl Request
pub fn get_mut_method(&mut self) -> &mut Method
pub fn get_mut_host(&mut self) -> &mut String
pub fn get_mut_version(&mut self) -> &mut HttpVersion
pub fn get_mut_path(&mut self) -> &mut String
pub fn get_mut_querys( &mut self, ) -> &mut HashMap<String, String, BuildHasherDefault<Hasher>>
pub fn get_mut_headers( &mut self, ) -> &mut HashMap<String, VecDeque<String>, BuildHasherDefault<Hasher>>
pub fn get_mut_body(&mut self) -> &mut Vec<u8> ⓘ
Source§impl Request
impl Request
pub fn set_method(&mut self, val: Method) -> &mut Request
pub fn set_host(&mut self, val: String) -> &mut Request
pub fn set_version(&mut self, val: HttpVersion) -> &mut Request
pub fn set_path(&mut self, val: String) -> &mut Request
pub fn set_querys( &mut self, val: HashMap<String, String, BuildHasherDefault<Hasher>>, ) -> &mut Request
pub fn set_headers( &mut self, val: HashMap<String, VecDeque<String>, BuildHasherDefault<Hasher>>, ) -> &mut Request
pub fn set_body(&mut self, val: Vec<u8>) -> &mut Request
Trait Implementations§
Source§impl Default for Request
Provides a default value for Request.
impl Default for Request
Provides a default value for Request.
Returns a new Request instance with all fields initialized to their default values.