Python:编码base64字符串以将其放在标题上

时间:2017-02-15 03:33:57

标签: python base64

我使用此代码编码user_name和密码并将其放入标题。

def login_as_user(self,user):
    encode_login = base64.b64encode(bytes(str(user['email'] + ":" +user['password']),'utf8'))
    headers = { Config.API_AUTHORIZATION:"Basic "+str(encode_login)}
    response = requests.requestd("POST", self.url_path , data="", headers=headers)
    return response

使用

  

user_name = test@test.com,password = 1。

当我将encode_login转换为str时,输出始终 b' dGVzdEB0ZXN0LmNvbTox' ,然后在转换为字符串时,它包含b'。这使我的标题在请求时出错。

请帮忙,我该如何解决?感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用UTF8简单地将数据解码为decode()

例如,如果您的变量是:

a = b'dGVzdEB0ZXN0LmNvbTox'
# Or:
# a = a.decode('UTF8') 
a = a.decode()
print(a)

输出:

>> 'dGVzdEB0ZXN0LmNvbTox'

否则,将打印:

base64.b64encode(bytes("hello", 'utf8')).decode()
>>> 'aGVsbG8='

因此,在您的问题中,您只需修改此行:

headers = { Config.API_AUTHORIZATION:"Basic " + str(encode_login)}

人:

headers = { Config.API_AUTHORIZATION:"Basic " + encode_login.decode()}