我正试图在Python3中建立一个HTTPS连接,当我试图对用户名和密码进行编码时,base64
encodebytes
方法返回编码后的值,在“\n”结尾处有一个新行字符,因此,当我尝试连接时,会收到一个错误。
有没有办法告诉base64
库在编码时不要附加新行字符,或者什么是删除新行字符的最佳方法?我尝试使用replace
方法,但得到以下错误:
Traceback (most recent call last):
File "data_consumer.py", line 33, in <module>
auth_base64 = auth_base64.replace('\n', '')
TypeError: expected bytes, bytearray or buffer compatible object
我的代码:
auth = b'username@domain.com:passWORD'
auth_base64 = base64.encodebytes(auth)
auth_base64 = auth_base64.replace('\n', '')
有什么想法吗?谢谢
我同意Mandar's observation的观点,即
base64.xxxx_encode()
将生成不带换行\n
的输出。对于那些想要一个比观察更自信的理解的人,我可以在这个话题上找到官方的承诺。Python 3 documentation确实提到了
base64.encode(...)
将在每76字节的输出之后添加新行。相比之下,所有其他的*_encode(...)
函数根本没有提到它们的换行行为,这可以被认为是“没有换行行为”。就其价值而言,Python 2 documentation根本没有提到换行。下面的代码可以工作
与其使用
encodestring
,不如考虑使用b64encode
。稍后不添加\n
字符。e、 g它生成除了
\n
之外的相同编码字符串相关问题 更多 >
编程相关推荐