re-add the "socks" feature (using tokio-socks) (#769)
The "socks" feature has been removed for a while now, the optional dependency on the "socks" crate commented out. The code for actually providing the socks feature was, however, still mostly present, if a bit out of date. This commit re-adds the socks feature using the tokio-socks (instead of socks) crate. Closes #620
This commit is contained in:
24
examples/tor_socks.rs
Normal file
24
examples/tor_socks.rs
Normal file
@@ -0,0 +1,24 @@
|
||||
#![deny(warnings)]
|
||||
|
||||
// This is using the `tokio` runtime. You'll need the following dependency:
|
||||
//
|
||||
// `tokio = { version = "0.2", features = ["macros"] }`
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), reqwest::Error> {
|
||||
// Make sure you are running tor and this is your socks port
|
||||
let proxy = reqwest::Proxy::all("socks5://127.0.0.1:9050").expect("tor proxy should be there");
|
||||
let client = reqwest::Client::builder()
|
||||
.proxy(proxy)
|
||||
.build()
|
||||
.expect("should be able to build reqwest client");
|
||||
|
||||
let res = client.get("https://check.torproject.org").send().await?;
|
||||
println!("Status: {}", res.status());
|
||||
|
||||
let text = res.text().await?;
|
||||
let is_tor = text.contains("Congratulations. This browser is configured to use Tor.");
|
||||
println!("Is Tor: {}", is_tor);
|
||||
assert!(is_tor);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user