Я получаю сообщение об ошибке даже после установки кодировки base64:
Traceback (most recent call last):
File "api_tufin_5.py", line 41, in <module>
main(sys.argv[1:])
File "api_tufin_5.py", line 28, in main
headers['Authorization'] = 'Basic ' + base64.b64encode(user + ':' +
password)
TypeError: can't concat bytes to str
Это мой код:
import requests, sys, base64, collections, json
# global vars
server_ip = 'url'
headers = {}
user = b'username'
password = b'password'
debug = False
def http_get(url, headers=headers):
try:
r = requests.get(url=url, headers=headers, verify=False)
except requests.exceptions.RequestException as e:
print >> sys.stderr, e
return
if debug:
print (r.text)
http_result = collections.namedtuple('HTTP_Result', ['status',
'text'])
return http_result(r.status_code, r.text)
def main(argv):
headers['Accept'] = 'application/json'
headers['Authorization'] = 'Basic ' + base64.b64encode(user + ':' +
password)
r = http_get('url/securechangeworkflow/api/securechange/tickets?
status=In Progress&count=10&start=1&expand_links=false')
if r.status != 200:
print >> sys.stderr, "Failed to get devices"
print >> sys.stderr, "Status: ", r.status
return -1
print (r.text)
if __name__ =='__main__':
main(sys.argv[1:])
Почему при кодировке base64 все равно будет отображаться ошибка?Что заставило бы это не конкатировать байты к str?Использование + должно быть в состоянии объединить две строки в один объект.