Задать вопрос
@TicSo

Как вывести клиентскую куку в приложении, которое использует Reqwest with cookie_provider()?

Если правильно понял работу с reqwest_cookie_store , то следующий код позволяет сохранять
и использовать куки из файла. Такой файл создал и поместил в него тестовую куку.
код
let s = "... /sites/site_01.json";
let cookie_store = {
   if let Ok(file) = std::fs::File::open(s).map(std::io::BufReader::new) {
      cookie_store::CookieStore::load(file, |c| serde_json::from_str(c)).unwrap()
   } else { 
      reqwest_cookie_store::CookieStore::new(None)
   }
};
let cookie_store = reqwest_cookie_store::CookieStoreMutex::new(cookie_store);
let cookie_store = std::sync::Arc::new(cookie_store);

let client = ClientBuilder::new()
           .cookie_provider(std::sync::Arc::clone(&cookie_store))
           .build()?;

далее по коду
let client = ClientBuilder::new()
   .cookie_provider(std::sync::Arc::clone(&cookie_store))
   .build()?;

// код для работы с набором сайтов и их индивидуальными параметрами заголовков и кук ....

// `RequestBuilder`:
let r = client.get(urls[i]).headers(vec_headers[i].clone()).build()?;
println!("client_Headers: {:#?}", r.headers());

let resp = client.execute(r).await?;
println!("\n Status: {} \n", resp.status());
println!("server_Headers: {:#?}", resp.headers());
     
let body = resp.text().await?;
println!("Body: {}", body);

так вижу в wireshark параметры, которые отправил клиент:

Hypertext Transfer Protocol
> GET /info.json HTTP/1.1\r\n
Request Method: GET
Request URI: /info.json
Request Version: HTTP/1.1
host: site_01.com\r\n
user-agent: Mozilla...\r\n
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,...;q=0.8\r\n
accept-language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\n
accept-encoding: gzip, deflate\r\n
dnt: 1\r\n
sec-gpc: 1\r\n
connection: keep-alive\r\n
upgrade-insecure-requests: 1\r\n
priority: u=0, i\r\n
pragma: no-cache\r\n
cache-control: no-cache\r\n
> cookie: my_test_id=74e97a8a.63beb327ec4d9\r\n
Cookie pair: my_test_id=74e97a8a.63beb327ec4d9

так (без куки) выводит `client_Headers:` в приложении:

client_Headers: {
"host": "site_01.com",
"user-agent": "Mozilla...",
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,...;q=0.8",
"accept-language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
"accept-encoding": "gzip, deflate",
"dnt": "1",
"sec-gpc": "1",
"connection": "keep-alive",
"upgrade-insecure-requests": "1",
"priority": "u=0, i",
"pragma": "no-cache",
"cache-control": "no-cache",
}

Как в приложении выводить куку, которая для конкретного сайта подготовлена для отправки от клиента?
Возможно ли настроить данное приложение на раст так, чтобы расшифровывать https трафик?
Вижу в wireshark алгоритм rsa
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
ну и крокозяблы. Файл (Pre)Master Secret log filename в настройках TLC wireshark такое не решает, он помогает с Cipher Suite: TLS_AES_128_GCM_SHA256 (0x1301) и подобными.
  • Вопрос задан
  • 71 просмотр
Подписаться 2 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы