summaryrefslogtreecommitdiff
path: root/src/main.rs
blob: 0a39d7029f8e873ebff37ad06dbbf9595ac8d862 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use clap::Parser;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let args = Args::parse();
    let mut i = 0;
    let mut tasks = vec![];
    let client = reqwest::Client::builder()
        .danger_accept_invalid_certs(true)
        .build()?;
    while i < args.n {
        let url = args.url.clone();
        let client = client.clone();
        let x = tokio::spawn(
            async move { client.get(&url).send().await });
        tasks.push(x);
        i += 1;
    }
    println!("{} tasks created", tasks.len());
    for task in tasks {
        let result = task.await?;
        let response = result?;
        if !response.status().is_success() {
            println!("{:?} {}", args.url,
                     response.status());
        }
    }
    println!("OK");
    Ok(())
}

#[derive(Parser)]
struct Args {
    #[clap()]
    n: usize,

    #[clap()]
    url: String,
}