#[non_exhaustive]pub struct HttpRequest {
pub url: Url,
pub method: Method,
pub headers: HeaderMap,
pub body: Option<RequestBody>,
pub cookie_jar: Option<Arc<CookieJar>>,
pub proxy: Option<Url>,
pub timeout: Option<Duration>,
pub max_redirects: u32,
pub use_header_generator: bool,
pub session_token: Option<SessionToken>,
}Expand description
A backend-independent HTTP request.
Fingerprint-aware clients can generate browser-like headers when requested and use the optional session token to keep those headers consistent across related requests.
§Examples
use millipede_core::{http_client::HttpRequest, request::Method};
use url::Url;
let request = HttpRequest::new(Url::parse("https://example.com/")?)
.method(Method::HEAD)
.max_redirects(3);
assert_eq!(request.method, Method::HEAD);Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.url: UrlURL to request.
method: MethodHTTP method.
headers: HeaderMapHTTP request headers.
body: Option<RequestBody>Optional request body.
Optional cookie jar used for this request and its response.
proxy: Option<Url>Optional proxy URL.
timeout: Option<Duration>Optional request timeout.
max_redirects: u32Maximum number of redirects to follow.
use_header_generator: boolWhether the HTTP client should generate browser-like request headers.
session_token: Option<SessionToken>Token used to keep generated headers consistent across a session.
Implementations§
Source§impl HttpRequest
impl HttpRequest
Sourcepub fn new(url: Url) -> Self
pub fn new(url: Url) -> Self
Creates a GET request with no headers, body, cookie jar, proxy, or timeout.
Sourcepub fn from_request(request: &Request) -> Self
pub fn from_request(request: &Request) -> Self
Copies the HTTP-facing fields from a crawl request.
Sourcepub fn body(self, body: RequestBody) -> Self
pub fn body(self, body: RequestBody) -> Self
Sets the request body.
Sets the cookie jar.
Sourcepub fn max_redirects(self, max_redirects: u32) -> Self
pub fn max_redirects(self, max_redirects: u32) -> Self
Sets the maximum number of redirects to follow.
Sourcepub fn use_header_generator(self, enabled: bool) -> Self
pub fn use_header_generator(self, enabled: bool) -> Self
Enables or disables browser-like header generation.
Sourcepub fn session_token(self, token: SessionToken) -> Self
pub fn session_token(self, token: SessionToken) -> Self
Sets the token used for consistent per-session header generation.
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 more