2019-03-26 19:31:51 +00:00
|
|
|
use actix_http::Error;
|
2019-01-29 04:41:09 +00:00
|
|
|
use actix_rt::System;
|
|
|
|
use bytes::BytesMut;
|
|
|
|
use futures::{future::lazy, Future, Stream};
|
|
|
|
|
|
|
|
fn main() -> Result<(), Error> {
|
|
|
|
std::env::set_var("RUST_LOG", "actix_http=trace");
|
|
|
|
env_logger::init();
|
|
|
|
|
|
|
|
System::new("test").block_on(lazy(|| {
|
2019-03-26 19:31:51 +00:00
|
|
|
awc::Client::new()
|
|
|
|
.get("https://www.rust-lang.org/") // <- Create request builder
|
2019-01-29 04:41:09 +00:00
|
|
|
.header("User-Agent", "Actix-web")
|
2019-03-26 19:31:51 +00:00
|
|
|
.send() // <- Send http request
|
2019-01-29 04:41:09 +00:00
|
|
|
.from_err()
|
|
|
|
.and_then(|response| {
|
|
|
|
// <- server http response
|
|
|
|
println!("Response: {:?}", response);
|
|
|
|
|
|
|
|
// read response body
|
|
|
|
response
|
|
|
|
.from_err()
|
|
|
|
.fold(BytesMut::new(), move |mut acc, chunk| {
|
|
|
|
acc.extend_from_slice(&chunk);
|
|
|
|
Ok::<_, Error>(acc)
|
|
|
|
})
|
|
|
|
.map(|body| println!("Downloaded: {:?} bytes", body.len()))
|
|
|
|
})
|
|
|
|
}))
|
|
|
|
}
|