Files
reqwest-impersonate/examples/async_multiple_requests.rs
2019-08-16 12:59:55 -07:00

56 lines
1.1 KiB
Rust

#![deny(warnings)]
extern crate futures;
extern crate reqwest;
extern crate tokio;
extern crate serde;
extern crate serde_json;
use futures::Future;
use reqwest::r#async::{Client, Response};
use serde::Deserialize;
#[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());
}