@@ -148,32 +148,15 @@ impl Client {
148148 request_builder = request_builder. query ( & query) ;
149149 }
150150
151- if let Some ( headers) = request. headers {
152- for ( header, header_value) in headers. iter ( ) {
153- request_builder =
154- request_builder. header ( HeaderName :: from_bytes ( header. as_bytes ( ) ) ?, header_value) ;
155- }
156- }
157-
158151 if let Some ( timeout) = request. timeout {
159152 request_builder = request_builder. timeout ( Duration :: from_secs ( timeout) ) ;
160153 }
161154
162- let response = if let Some ( body) = request. body {
163- match body {
164- Body :: Bytes ( data) => {
165- request_builder
166- . body ( bytes:: Bytes :: from ( data) )
167- . send ( )
168- . await ?
169- }
170- Body :: Text ( text) => {
171- request_builder
172- . body ( bytes:: Bytes :: from ( text) )
173- . send ( )
174- . await ?
175- }
176- Body :: Json ( json) => request_builder. json ( & json) . send ( ) . await ?,
155+ if let Some ( body) = request. body {
156+ request_builder = match body {
157+ Body :: Bytes ( data) => request_builder. body ( bytes:: Bytes :: from ( data) ) ,
158+ Body :: Text ( text) => request_builder. body ( bytes:: Bytes :: from ( text) ) ,
159+ Body :: Json ( json) => request_builder. json ( & json) ,
177160 Body :: Form ( form_body) => {
178161 let mut form = Vec :: new ( ) ;
179162 for ( name, part) in form_body. 0 {
@@ -183,12 +166,22 @@ impl Client {
183166 FormPart :: Text ( text) => form. push ( ( name, text) ) ,
184167 }
185168 }
186- request_builder. form ( & form) . send ( ) . await ?
169+ request_builder. form ( & form)
187170 }
171+ } ;
172+ }
173+
174+ let mut http_request = request_builder. build ( ) ?;
175+ if let Some ( headers) = request. headers {
176+ for ( header, value) in headers. iter ( ) {
177+ http_request. headers_mut ( ) . insert (
178+ HeaderName :: from_bytes ( header. as_bytes ( ) ) ?,
179+ http:: header:: HeaderValue :: from_str ( value) ?,
180+ ) ;
188181 }
189- } else {
190- request_builder . send ( ) . await ?
191- } ;
182+ }
183+
184+ let response = self . 0 . execute ( http_request ) . await ? ;
192185
193186 if response. status ( ) . is_success ( ) {
194187 Ok ( Response (
0 commit comments