Skip to content

Commit 8520058

Browse files
Fishrock123jbr
authored andcommitted
curl_client: fix IsahcClient post-a943eb96e9
Fixes the IsahcClient to work wiith async_trait from a943eb9
1 parent 75a742f commit 8520058

File tree

1 file changed

+26
-29
lines changed

1 file changed

+26
-29
lines changed

src/isahc.rs

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -43,35 +43,32 @@ impl Clone for IsahcClient {
4343
#[async_trait]
4444
impl HttpClient for IsahcClient {
4545
async fn send(&self, mut req: Request) -> Result<Response, Error> {
46-
let client = self.client.clone();
47-
Box::pin(async move {
48-
let mut builder = http::Request::builder()
49-
.uri(req.url().as_str())
50-
.method(http::Method::from_bytes(req.method().to_string().as_bytes()).unwrap());
51-
52-
for (name, value) in req.iter() {
53-
builder = builder.header(name.as_str(), value.as_str());
54-
}
55-
56-
let body = req.take_body();
57-
58-
let body = match body.len() {
59-
Some(len) => isahc::Body::from_reader_sized(body, len as u64),
60-
None => isahc::Body::from_reader(body),
61-
};
62-
63-
let request = builder.body(body).unwrap();
64-
let res = client.send_async(request).await.map_err(Error::from)?;
65-
let (parts, body) = res.into_parts();
66-
let len = body.len().map(|len| len as usize);
67-
let body = Body::from_reader(BufReader::new(body), len);
68-
let mut response = http_types::Response::new(parts.status.as_u16());
69-
for (name, value) in &parts.headers {
70-
response.insert_header(name.as_str(), value.to_str().unwrap());
71-
}
72-
response.set_body(body);
73-
Ok(response)
74-
})
46+
let mut builder = http::Request::builder()
47+
.uri(req.url().as_str())
48+
.method(http::Method::from_bytes(req.method().to_string().as_bytes()).unwrap());
49+
50+
for (name, value) in req.iter() {
51+
builder = builder.header(name.as_str(), value.as_str());
52+
}
53+
54+
let body = req.take_body();
55+
56+
let body = match body.len() {
57+
Some(len) => isahc::Body::from_reader_sized(body, len as u64),
58+
None => isahc::Body::from_reader(body),
59+
};
60+
61+
let request = builder.body(body).unwrap();
62+
let res = self.client.send_async(request).await.map_err(Error::from)?;
63+
let (parts, body) = res.into_parts();
64+
let len = body.len().map(|len| len as usize);
65+
let body = Body::from_reader(BufReader::new(body), len);
66+
let mut response = http_types::Response::new(parts.status.as_u16());
67+
for (name, value) in &parts.headers {
68+
response.insert_header(name.as_str(), value.to_str().unwrap());
69+
}
70+
response.set_body(body);
71+
Ok(response)
7572
}
7673
}
7774

0 commit comments

Comments
 (0)