pass cookies to HTTP requests with the option "--cookies"
This commit is contained in:
parent
2539aac4c0
commit
8d29a2a370
2 changed files with 13 additions and 1 deletions
|
@ -1,7 +1,7 @@
|
||||||
use encoding_rs::Encoding;
|
use encoding_rs::Encoding;
|
||||||
use html5ever::rcdom::RcDom;
|
use html5ever::rcdom::RcDom;
|
||||||
use reqwest::blocking::Client;
|
use reqwest::blocking::Client;
|
||||||
use reqwest::header::{HeaderMap, HeaderValue, USER_AGENT};
|
use reqwest::header::{HeaderMap, HeaderValue, USER_AGENT, COOKIE};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::fs;
|
use std::fs;
|
||||||
use std::io::{self, prelude::*, Error, Write};
|
use std::io::{self, prelude::*, Error, Write};
|
||||||
|
@ -155,6 +155,12 @@ fn main() {
|
||||||
HeaderValue::from_str(&user_agent).expect("Invalid User-Agent header specified"),
|
HeaderValue::from_str(&user_agent).expect("Invalid User-Agent header specified"),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if let Some(cookies) = &options.cookies {
|
||||||
|
header_map.insert(
|
||||||
|
COOKIE,
|
||||||
|
HeaderValue::from_str(&cookies).expect("Invalid cookies specified"),
|
||||||
|
);
|
||||||
|
}
|
||||||
let client = if options.timeout > 0 {
|
let client = if options.timeout > 0 {
|
||||||
Client::builder().timeout(Duration::from_secs(options.timeout))
|
Client::builder().timeout(Duration::from_secs(options.timeout))
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -23,6 +23,7 @@ pub struct Options {
|
||||||
pub target: String,
|
pub target: String,
|
||||||
pub no_color: bool,
|
pub no_color: bool,
|
||||||
pub unwrap_noscript: bool,
|
pub unwrap_noscript: bool,
|
||||||
|
pub cookies: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
const ASCII: &'static str = " \
|
const ASCII: &'static str = " \
|
||||||
|
@ -68,6 +69,7 @@ impl Options {
|
||||||
.args_from_usage("-t, --timeout=[60] 'Adjusts network request timeout'")
|
.args_from_usage("-t, --timeout=[60] 'Adjusts network request timeout'")
|
||||||
.args_from_usage("-u, --user-agent=[Firefox] 'Sets custom User-Agent string'")
|
.args_from_usage("-u, --user-agent=[Firefox] 'Sets custom User-Agent string'")
|
||||||
.args_from_usage("-v, --no-video 'Removes video sources'")
|
.args_from_usage("-v, --no-video 'Removes video sources'")
|
||||||
|
.args_from_usage("--cookies, --cookies=[UTF-8] 'Set cookies for HTTP requests. This format is being used: name1=value1;name2=value2'")
|
||||||
.arg(
|
.arg(
|
||||||
Arg::with_name("target")
|
Arg::with_name("target")
|
||||||
.required(true)
|
.required(true)
|
||||||
|
@ -122,6 +124,10 @@ impl Options {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let Some(cookies) = app.value_of("cookies") {
|
||||||
|
options.cookies = Some(str!(cookies));
|
||||||
|
}
|
||||||
|
|
||||||
options
|
options
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue