diff --git a/src/async_impl/request.rs b/src/async_impl/request.rs index cfbaa4e..aeb56b8 100644 --- a/src/async_impl/request.rs +++ b/src/async_impl/request.rs @@ -123,12 +123,14 @@ impl RequestBuilder { /// Enable HTTP basic authentication. pub fn basic_auth(&mut self, username: U, password: Option

) -> &mut RequestBuilder where - U: Into, - P: Into, + U: fmt::Display, + P: fmt::Display, { - let username = username.into(); - let password = password.map(|p| p.into()).unwrap_or(String::new()); - let header_value = format!("basic {}:{}", username, encode(&password)); + let auth = match password { + Some(password) => format!("{}:{}", username, password), + None => format!("{}:", username) + }; + let header_value = format!("basic {}", encode(&auth)); self.header(::header::AUTHORIZATION, HeaderValue::from_str(header_value.as_str()).expect("")) } diff --git a/src/request.rs b/src/request.rs index d7bac6c..8c04898 100644 --- a/src/request.rs +++ b/src/request.rs @@ -162,12 +162,14 @@ impl RequestBuilder { /// ``` pub fn basic_auth(&mut self, username: U, password: Option

) -> &mut RequestBuilder where - U: Into, - P: Into, + U: fmt::Display, + P: fmt::Display, { - let username = username.into(); - let password = password.map(|p| p.into()).unwrap_or(String::new()); - let header_value = format!("basic {}:{}", username, encode(&password)); + let auth = match password { + Some(password) => format!("{}:{}", username, password), + None => format!("{}:", username) + }; + let header_value = format!("basic {}", encode(&auth)); self.header(::header::AUTHORIZATION, HeaderValue::from_str(header_value.as_str()).expect("")) }