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
		
			
				
	
	
		
			25 lines
		
	
	
		
			837 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			837 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| #![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(())
 | |
| }
 |