1//! Example: Download large file using streaming
2use jacquard_common::http_client::HttpClientExt;
3
4#[tokio::main]
5async fn main() -> Result<(), Box<dyn std::error::Error>> {
6 let client = reqwest::Client::new();
7
8 let request = http::Request::builder()
9 .uri("https://httpbin.org/bytes/1024")
10 .body(vec![])
11 .unwrap();
12
13 let response = client.send_http_streaming(request).await?;
14 println!("Status: {}", response.status());
15 println!("Headers: {:?}", response.headers());
16
17 let (_parts, _body) = response.into_parts();
18 println!("Received streaming response body (ByteStream)");
19
20 // Note: To iterate over chunks, use futures_lite::StreamExt on the pinned inner stream:
21 // let mut stream = Box::pin(body.into_inner());
22 // while let Some(chunk) = stream.as_mut().try_next().await? { ... }
23
24 Ok(())
25}