chaser_oxide/handler/
http.rs1use chromiumoxide_cdp::cdp::browser_protocol::network::{InterceptionId, RequestId, Response};
2use chromiumoxide_cdp::cdp::browser_protocol::page::FrameId;
3use std::collections::HashMap;
4
5#[derive(Debug, Clone)]
6pub struct HttpRequest {
7 request_id: RequestId,
8 pub from_memory_cache: bool,
9 pub failure_text: Option<String>,
10 pub interception_id: Option<InterceptionId>,
11 pub response: Option<Response>,
12 pub headers: HashMap<String, String>,
13 pub frame: Option<FrameId>,
14 pub is_navigation_request: bool,
15 pub allow_interception: bool,
16 pub interception_handled: bool,
17 pub method: Option<String>,
18 pub url: Option<String>,
19 pub resource_type: Option<String>,
20 pub post_data: Option<String>,
21 pub redirect_chain: Vec<HttpRequest>,
22}
23
24impl HttpRequest {
25 pub fn new(
26 request_id: RequestId,
27 frame: Option<FrameId>,
28 interception_id: Option<InterceptionId>,
29 allow_interception: bool,
30 redirect_chain: Vec<HttpRequest>,
31 ) -> Self {
32 Self {
33 request_id,
34 from_memory_cache: false,
35 failure_text: None,
36 interception_id,
37 response: None,
38 headers: Default::default(),
39 frame,
40 is_navigation_request: false,
41 allow_interception,
42 interception_handled: false,
43 method: None,
44 url: None,
45 resource_type: None,
46 post_data: None,
47 redirect_chain,
48 }
49 }
50
51 pub fn request_id(&self) -> &RequestId {
52 &self.request_id
53 }
54
55 pub(crate) fn set_response(&mut self, response: Response) {
56 self.response = Some(response)
57 }
58}