pub struct HttpRequest {Show 14 fields
pub method: Option<String>,
pub path: Option<String>,
pub query_string_parameters: Option<HashMap<String, Vec<String>>>,
pub headers: Option<HashMap<String, Vec<String>>>,
pub body: Option<Body>,
pub jwt: Option<Jwt>,
pub socket_address: Option<SocketAddress>,
pub not: Option<bool>,
pub secure: Option<bool>,
pub keep_alive: Option<bool>,
pub protocol: Option<String>,
pub path_parameters: Option<HashMap<String, ParameterValues>>,
pub cookies: Option<HashMap<String, String>>,
pub extra: Extra,
}Expand description
Matcher for an HTTP request. Uses builder methods for fluent construction.
§Example
use mockserver_client::HttpRequest;
let request = HttpRequest::new()
.method("POST")
.path("/api/users")
.header("Content-Type", "application/json")
.query_param("page", "1")
.body("{}");Fields§
§method: Option<String>§path: Option<String>§query_string_parameters: Option<HashMap<String, Vec<String>>>§headers: Option<HashMap<String, Vec<String>>>§body: Option<Body>§jwt: Option<Jwt>§socket_address: Option<SocketAddress>§not: Option<bool>Negate the whole request matcher ("not": true).
secure: Option<bool>Match only requests received over TLS ("secure").
keep_alive: Option<bool>Match only keep-alive requests ("keepAlive").
protocol: Option<String>Match the request protocol (e.g. "HTTP_1_1", "HTTP_2", "HTTP_3").
path_parameters: Option<HashMap<String, ParameterValues>>Path parameters (/users/{id} style), multiple values per key.
Each key’s value is a ParameterValues, accepting both the plain
string-list form and the schema/nottable matcher form.
Cookies to match (single value per name).
extra: ExtraForward-compatibility catch-all for request fields the typed model does
not yet name (e.g. clientCertificate, localAddress, remoteAddress).
Implementations§
Source§impl HttpRequest
impl HttpRequest
Sourcepub fn socket_address(self, socket_address: SocketAddress) -> Self
pub fn socket_address(self, socket_address: SocketAddress) -> Self
Set the downstream socket address to connect to.
Used by load-scenario steps (and forwarded/proxied requests) to direct
the rendered request at a specific host/port/scheme rather than relying
on the request’s Host header.
Sourcepub fn query_param(
self,
key: impl Into<String>,
value: impl Into<String>,
) -> Self
pub fn query_param( self, key: impl Into<String>, value: impl Into<String>, ) -> Self
Add a query string parameter (multiple values per key supported).
Sourcepub fn header(self, key: impl Into<String>, value: impl Into<String>) -> Self
pub fn header(self, key: impl Into<String>, value: impl Into<String>) -> Self
Add a header (multiple values per key supported).
Sourcepub fn file_body(self, file_path: impl Into<String>) -> Self
pub fn file_body(self, file_path: impl Into<String>) -> Self
Set a file body (type “FILE”) with optional content type and template type.
Use Body::file for richer construction if you need content type or
template type set.
Sourcepub fn body_value(self, body: Body) -> Self
pub fn body_value(self, body: Body) -> Self
Set a pre-built Body value (use with Body::file for FILE bodies).
Sourcepub fn jwt(self, jwt: Jwt) -> Self
pub fn jwt(self, jwt: Jwt) -> Self
Set a JWT request matcher.
Serialised under the "jwt" key alongside method/path/headers.
§Example
use mockserver_client::{HttpRequest, Jwt};
let request = HttpRequest::new()
.method("GET")
.path("/secure")
.jwt(
Jwt::new()
.claim("sub", "user-123")
.claim("role", "!admin")
.issuer("https://issuer.example.com")
.algorithm("RS256"),
);Sourcepub fn keep_alive(self, keep_alive: bool) -> Self
pub fn keep_alive(self, keep_alive: bool) -> Self
Match only keep-alive requests.
Sourcepub fn protocol(self, protocol: impl Into<String>) -> Self
pub fn protocol(self, protocol: impl Into<String>) -> Self
Match the request protocol (e.g. "HTTP_1_1", "HTTP_2").
Sourcepub fn path_param(
self,
key: impl Into<String>,
value: impl Into<String>,
) -> Self
pub fn path_param( self, key: impl Into<String>, value: impl Into<String>, ) -> Self
Add a plain path parameter value (multiple values per key supported).
For schema/nottable matcher forms, set path_parameters
directly with a ParameterValues::Matcher.
Add a cookie to match (single value per name).
Trait Implementations§
Source§impl Clone for HttpRequest
impl Clone for HttpRequest
Source§fn clone(&self) -> HttpRequest
fn clone(&self) -> HttpRequest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HttpRequest
impl Debug for HttpRequest
Source§impl Default for HttpRequest
impl Default for HttpRequest
Source§fn default() -> HttpRequest
fn default() -> HttpRequest
Source§impl<'de> Deserialize<'de> for HttpRequest
impl<'de> Deserialize<'de> for HttpRequest
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for HttpRequest
impl PartialEq for HttpRequest
Source§fn eq(&self, other: &HttpRequest) -> bool
fn eq(&self, other: &HttpRequest) -> bool
self and other values to be equal, and is used by ==.