@@ -43,35 +43,32 @@ impl Clone for IsahcClient {
43
43
#[ async_trait]
44
44
impl HttpClient for IsahcClient {
45
45
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)
75
72
}
76
73
}
77
74
0 commit comments