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(""))
}