Add http1_title_case_headers option to ClientBuilder (#463)

This commit is contained in:
Antoine Carton
2019-02-27 22:21:50 +01:00
committed by Sean McArthur
parent 4fba983e5e
commit aa8348ba1e
2 changed files with 25 additions and 0 deletions

View File

@@ -78,6 +78,7 @@ struct Config {
#[cfg(feature = "tls")] #[cfg(feature = "tls")]
tls: TlsBackend, tls: TlsBackend,
http2_only: bool, http2_only: bool,
http1_title_case_headers: bool,
local_address: Option<IpAddr>, local_address: Option<IpAddr>,
} }
@@ -110,6 +111,7 @@ impl ClientBuilder {
#[cfg(feature = "tls")] #[cfg(feature = "tls")]
tls: TlsBackend::default(), tls: TlsBackend::default(),
http2_only: false, http2_only: false,
http1_title_case_headers: false,
local_address: None, local_address: None,
}, },
} }
@@ -186,6 +188,10 @@ impl ClientBuilder {
builder.http2_only(true); builder.http2_only(true);
} }
if config.http1_title_case_headers {
builder.http1_title_case_headers(true);
}
let hyper_client = builder.build(connector); let hyper_client = builder.build(connector);
let proxies_maybe_http_auth = proxies let proxies_maybe_http_auth = proxies
@@ -329,6 +335,12 @@ impl ClientBuilder {
self self
} }
/// Enable case sensitive headers.
pub fn http1_title_case_headers(mut self) -> ClientBuilder {
self.config.http1_title_case_headers = true;
self
}
/// Set a timeout for only the connect phase of a `Client`. /// Set a timeout for only the connect phase of a `Client`.
/// ///
/// Default is `None`. /// Default is `None`.

View File

@@ -324,6 +324,19 @@ impl ClientBuilder {
self.with_inner(|inner| inner.h2_prior_knowledge()) self.with_inner(|inner| inner.h2_prior_knowledge())
} }
/// Enable case sensitive headers.
///
/// # Example
///
/// ```
/// let client = reqwest::Client::builder()
/// .http1_title_case_headers()
/// .build().unwrap();
/// ```
pub fn http1_title_case_headers(self) -> ClientBuilder {
self.with_inner(|inner| inner.http1_title_case_headers())
}
/// Bind to a local IP Address /// Bind to a local IP Address
/// ///
/// # Example /// # Example