shindan_maker/
http_utils.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use reqwest::header;
use reqwest::header::{HeaderMap, HeaderValue};
use anyhow::{Context, Result};

pub(crate) fn extract_session_cookie(response: &reqwest::Response) -> Result<String> {
    response.cookies()
        .find(|cookie| cookie.name() == "_session")
        .map(|cookie| cookie.value().to_string())
        .context("Failed to extract session cookie")
}

pub(crate) fn prepare_headers(session_cookie: &str) -> Result<HeaderMap> {
    let mut headers = HeaderMap::new();
    headers.insert(
        header::CONTENT_TYPE,
        HeaderValue::from_static("application/x-www-form-urlencoded"),
    );

    let cookie_value = format!("_session={};", session_cookie);
    headers.insert(
        header::COOKIE,
        HeaderValue::from_str(&cookie_value)?,
    );

    Ok(headers)
}