0

我的脚本技能非常基础。我正在尝试将我在此处找到的 Python 2 片段改编为 Python 3。

我在格式化这一行时遇到了困难(我知道它需要一个字节对象,但不能让它工作)。

headers["Authorization"] = "Basic {0}".format(
        base64.b64encode("{0}:{1}".format('auth', 'login')))

完整片段:

import base64, http.client

headers = {}
body = '/api/2.1/xml-in'
headers["Authorization"] = "Basic {0}".format(
        base64.b64encode("{0}:{1}".format('auth', 'login')))
headers["Content-type"] = "application/xml"

# the XML we ll send to Freshbooks
XML = """<?xml version="1.0" encoding="utf-8"?>
<request method="task.list">
    <page>1</page>
    <per_page>15</per_page>
</request>"""


# Enable the job
conn = http.client.HTTPSConnection('sample.freshbooks.com')
conn.request('POST', body, None, headers)
resp = conn.getresponse()
print(resp.status)
conn.send(XML)

print(resp.read())
conn.close()

我尝试了以下方法,但随后出现有关格式化 str 的错误:

headers["Authorization"] = "Basic {0}".format(
        base64.b64encode("%b:%b" % b'auth', b'login'))

任何帮助将不胜感激。谢谢。

4

1 回答 1

1

这有点拗口,但以下工作:

headers["Authorization"] = "基本 {0}".format(base64.b64encode(("{0}:{1}".format('string', 'string').encode('utf-8') ))。解码())

于 2020-05-06T17:44:29.530 回答