@@ -156,17 +156,6 @@ impl RClient {
156
156
client_builder = client_builder. impersonate ( impersonate_builder) ;
157
157
}
158
158
159
- // Headers || Cookies
160
- if headers. is_some ( ) || cookies. is_some ( ) {
161
- let headers = headers. unwrap_or_else ( || IndexMap :: with_hasher ( RandomState :: default ( ) ) ) ;
162
- let mut headers_headermap = headers. to_headermap ( ) ;
163
- if let Some ( cookies) = cookies {
164
- let cookies_str = cookies. to_string ( ) ;
165
- headers_headermap. insert ( COOKIE , HeaderValue :: from_str ( & cookies_str) ?) ;
166
- }
167
- client_builder = client_builder. default_headers ( headers_headermap) ;
168
- } ;
169
-
170
159
// Cookie_store
171
160
if cookie_store. unwrap_or ( true ) {
172
161
client_builder = client_builder. cookie_store ( true ) ;
@@ -220,10 +209,25 @@ impl RClient {
220
209
client_builder = client_builder. http2_only ( ) ;
221
210
}
222
211
223
- let client = Arc :: new ( Mutex :: new ( client_builder. build ( ) ?) ) ;
212
+ let mut client = client_builder. build ( ) ?;
213
+
214
+ // Headers || Cookies
215
+ if headers. is_some ( ) || cookies. is_some ( ) {
216
+ let mut client_mut = client. as_mut ( ) ;
217
+ let client_headers = client_mut. headers ( ) ;
218
+ if let Some ( headers) = headers {
219
+ for ( key, val) in headers {
220
+ client_headers. insert_key_value ( key, val) ?;
221
+ }
222
+ }
223
+ if let Some ( cookies) = cookies {
224
+ let cookies_str = cookies. to_string ( ) ;
225
+ client_headers. insert ( COOKIE , HeaderValue :: from_str ( & cookies_str) ?) ;
226
+ }
227
+ }
224
228
225
229
Ok ( RClient {
226
- client,
230
+ client : Arc :: new ( Mutex :: new ( client ) ) ,
227
231
auth,
228
232
auth_bearer,
229
233
params,
0 commit comments