Added async example which makes multiple requests (#351)
This commit is contained in:
		
				
					committed by
					
						 Sean McArthur
						Sean McArthur
					
				
			
			
				
	
			
			
			
						parent
						
							15857a11a4
						
					
				
				
					commit
					aa6b1f4184
				
			
							
								
								
									
										55
									
								
								examples/async_multiple_requests.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								examples/async_multiple_requests.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| #![deny(warnings)] | ||||
|  | ||||
| extern crate futures; | ||||
| extern crate reqwest; | ||||
| extern crate tokio; | ||||
| extern crate serde; | ||||
| #[macro_use] extern crate serde_derive; | ||||
| extern crate serde_json; | ||||
|  | ||||
| use futures::Future; | ||||
| use reqwest::async::{Client, Response}; | ||||
|  | ||||
| #[derive(Deserialize, Debug)] | ||||
| struct Slideshow { | ||||
|     title: String, | ||||
|     author: String, | ||||
| } | ||||
|  | ||||
| #[derive(Deserialize, Debug)] | ||||
| struct SlideshowContainer { | ||||
|     slideshow: Slideshow, | ||||
| } | ||||
|  | ||||
| fn fetch() -> impl Future<Item=(), Error=()> { | ||||
|     let client = Client::new(); | ||||
|  | ||||
|     let json = |mut res : Response | { | ||||
|         res.json::<SlideshowContainer>() | ||||
|     }; | ||||
|  | ||||
|     let request1 = | ||||
|         client | ||||
|             .get("https://httpbin.org/json") | ||||
|             .send() | ||||
|             .and_then(json); | ||||
|  | ||||
|     let request2 = | ||||
|         client | ||||
|             .get("https://httpbin.org/json") | ||||
|             .send() | ||||
|             .and_then(json); | ||||
|  | ||||
|     request1.join(request2) | ||||
|         .map(|(res1, res2)|{ | ||||
|             println!("{:?}", res1); | ||||
|             println!("{:?}", res2); | ||||
|         }) | ||||
|         .map_err(|err| { | ||||
|             println!("stdout error: {}", err); | ||||
|         }) | ||||
| } | ||||
|  | ||||
| fn main() { | ||||
|     tokio::run(fetch()); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user