shindan_maker/http_utils.rs
1use reqwest::header;
2use reqwest::header::{HeaderMap, HeaderValue};
3use anyhow::{Context, Result};
4
5pub(crate) fn extract_session_cookie(response: &reqwest::Response) -> Result<String> {
6 response.cookies()
7 .find(|cookie| cookie.name() == "_session")
8 .map(|cookie| cookie.value().to_string())
9 .context("Failed to extract session cookie")
10}
11
12pub(crate) fn prepare_headers(session_cookie: &str) -> Result<HeaderMap> {
13 let mut headers = HeaderMap::new();
14 headers.insert(
15 header::CONTENT_TYPE,
16 HeaderValue::from_static("application/x-www-form-urlencoded"),
17 );
18
19 let cookie_value = format!("_session={};", session_cookie);
20 headers.insert(
21 header::COOKIE,
22 HeaderValue::from_str(&cookie_value)?,
23 );
24
25 Ok(headers)
26}