Python:对 base64 字符串进行编码以将其放在 headers 上
Python: Encode base64 string to put it on headers
我正在使用此代码进行编码 user_name 和密码并将其放入 headers。
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 and password = 1.
当我将 encode_login 转换为 str 时,输出总是 b'dGVzdEB0ZXN0LmNvbTox' ,然后当转换为字符串时,它包括 b'。这使得我的 headers 请求时出错。
请帮忙,我该如何解决这个问题?谢谢
您可以使用 decode()
.
将数据简单地解码为 UTF8
例如,如果您的变量是:
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()}
我正在使用此代码进行编码 user_name 和密码并将其放入 headers。
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 and password = 1.
当我将 encode_login 转换为 str 时,输出总是 b'dGVzdEB0ZXN0LmNvbTox' ,然后当转换为字符串时,它包括 b'。这使得我的 headers 请求时出错。
请帮忙,我该如何解决这个问题?谢谢
您可以使用 decode()
.
UTF8
例如,如果您的变量是:
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()}