1use reqwest::{IntoUrl, Method, RequestBuilder, header::HeaderMap};
2
3pub struct Client {
4 pub base_url: String,
5 pub(crate) reqwest_client: reqwest::Client,
6 pub(crate) headers: HeaderMap,
7}
8
9impl Client {
10 pub fn new(base_url: &str, cookie: &str) -> Self {
11 let reqwest_client = reqwest::Client::builder().build().unwrap();
12
13 let headers = {
14 let mut headers = reqwest::header::HeaderMap::new();
15 headers.insert("Cookie", cookie.parse().unwrap());
16 headers
17 };
18
19 Client {
20 base_url: base_url.to_owned(),
21 reqwest_client,
22 headers,
23 }
24 }
25
26 pub(crate) fn request(&self, method: Method, url: impl IntoUrl) -> RequestBuilder {
27 self.reqwest_client
28 .request(method, url)
29 .headers(self.headers.clone())
30 }
31}