1use crate::dto::prelude::*;
2
3#[derive(CandidType, Clone, Debug, Deserialize, Serialize)]
8pub struct HttpRequestArgs {
9 pub url: String,
10 pub max_response_bytes: Option<u64>,
11 pub method: HttpMethod,
12 pub headers: Vec<HttpHeader>,
13 pub body: Option<Vec<u8>>,
14 pub is_replicated: Option<bool>,
15}
16
17#[derive(CandidType, Clone, Debug, Deserialize, Serialize)]
22pub struct HttpRequestResult {
23 pub status: Nat,
24 pub headers: Vec<HttpHeader>,
25 #[serde(with = "serde_bytes")]
26 pub body: Vec<u8>,
27}
28
29#[derive(CandidType, Clone, Copy, Debug, Deserialize, Serialize)]
34pub enum HttpMethod {
35 #[serde(rename = "get")]
36 GET,
37 #[serde(rename = "post")]
38 POST,
39 #[serde(rename = "head")]
40 HEAD,
41}
42
43#[derive(CandidType, Clone, Debug, Deserialize, Serialize)]
48pub struct HttpHeader {
49 pub name: String,
50 pub value: String,
51}