I implemented the following cURL command with reqwest
.
curl -X POST --url http://localhost:8001/api/v1/scan --data "hash=30515b7db737547be080f66d5ed0223d" -H "Authorization:<API_KEY>"
[dependencies.reqwest]
version = "0.12"
features = ["json", "blocking"]
//previous code
let mut headers = header::HeaderMap::new();
headers.insert("Authorization", "<API_KEY>".parse().unwrap());
headers.insert("Content-Type", "application/x-www-form-urlencoded".parse().unwrap());
let client = reqwest::blocking::Client::builder()
.redirect(reqwest::redirect::Policy::none())
.build()
.unwrap();
let res = client.post([MOBSF_URL ,"/scan"].concat().as_str())
.timeout(Duration::from_secs(999999999999))
.headers(headers)
.body(query)
.send()
.unwrap();
if res.status() == 200 {
info!("Successful scan...");
Ok(res)
}
The cURL request waits until I get the response with the JSON I except. But reqwest
does not wait until I get the expected JSON. What do I miss here?
For some reason if the timeout is set to default then I get an error. But If I replace the timeout then it works but without a JSON response.
called `Result::unwrap()` on an `Err` value: reqwest::Error
{ kind: Request, url: Url { scheme: "http", cannot_be_a_base: false,
username: "", password: None, host: Some(Ipv4(127.0.0.1)),
port: Some(8001), path: "/api/v1/scan", query: None, fragment: None },
source: TimedOut }