use http::Method;
use reqwest::blocking::Client as BlockingClient;
use reqwest::blocking::Request;
use crate::HttpClient;
use crate::HttpClientError;
use crate::Readable;
impl HttpClient for BlockingClient {
fn get(&self, url: &str) -> Result<Box<dyn Readable>, HttpClientError> {
let resp = self
.execute(Request::new(
Method::GET,
url
.try_into()
.map_err(|err| HttpClientError::InvalidUrl(Box::new(err)))?,
))
.map_err(|err| HttpClientError::Other(Box::new(err)))?;
let status = resp.status();
if !status.is_success() {
return Err(HttpClientError::StatusCode(status));
}
Ok(Box::new(resp))
}
}