From e514920e190bbda3ddd35242bf566e7d752725a1 Mon Sep 17 00:00:00 2001 From: Dmitry Klimenko Date: Sat, 12 Nov 2016 01:39:37 +0300 Subject: [PATCH] Unable unicode in basic http auth Fixed the issue with unicode characters in basic http auth --- requests/auth.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/requests/auth.py b/requests/auth.py index d1196daa..057d723e 100644 --- a/requests/auth.py +++ b/requests/auth.py @@ -15,7 +15,7 @@ import threading from base64 import b64encode -from .compat import urlparse, str +from .compat import urlparse, str, bytes from .cookies import extract_cookies_to_jar from ._internal_utils import to_native_string from .utils import parse_dict_header @@ -27,6 +27,12 @@ CONTENT_TYPE_MULTI_PART = 'multipart/form-data' def _basic_auth_str(username, password): """Returns a Basic Auth string.""" + + if isinstance(username, bytes): + username = username.decode('latin1') + + if isinstance(password, bytes): + password = password.decode('latin1') authstr = 'Basic ' + to_native_string( b64encode(('%s:%s' % (username, password)).encode('latin1')).strip()