Fix overwriting of appended request headers (#493)
* don't overwrite appended user headers * Fixes tests, all header ordering related * does not need to clone default headers, added a test
This commit is contained in:
committed by
Sean McArthur
parent
38ea6a2d3c
commit
77434a29aa
@@ -6,6 +6,7 @@ use std::net::IpAddr;
|
||||
use bytes::Bytes;
|
||||
use futures::{Async, Future, Poll};
|
||||
use header::{
|
||||
Entry,
|
||||
HeaderMap,
|
||||
HeaderValue,
|
||||
ACCEPT,
|
||||
@@ -526,13 +527,16 @@ impl Client {
|
||||
let (
|
||||
method,
|
||||
url,
|
||||
user_headers,
|
||||
mut headers,
|
||||
body
|
||||
) = req.pieces();
|
||||
|
||||
let mut headers = self.inner.headers.clone(); // default headers
|
||||
for (key, value) in user_headers.iter() {
|
||||
headers.insert(key, value.clone());
|
||||
// insert default headers in the request headers
|
||||
// without overwriting already appended headers.
|
||||
for (key, value) in &self.inner.headers {
|
||||
if let Ok(Entry::Vacant(entry)) = headers.entry(key) {
|
||||
entry.insert(value.clone());
|
||||
}
|
||||
}
|
||||
|
||||
// Add cookies from the cookie store.
|
||||
|
||||
Reference in New Issue
Block a user