У меня это работает в Powershell, но я пытаюсь понять, как заставить его работать в Python.В Powershell я просто использую
$webclient.Headers.Add("Authorization", "Basic $auth")
с передачей в $ auth моего b64Val моего имени пользователя и пароля, затем получаю строку токена и снова передаю ее в том же формате, используя Authorization и Basic с $ auth, содержащиммоя длинная строка токена.
Тем не менее, я продолжаю возвращать 401 в Python, пытаясь выяснить, как сделать то же самое ... вот мой пример кода Python, первый запрос на получение My_token работает нормально ..
password = 'myPassword'
usrPass = "admin:" + password
b64Val = base64.b64encode(usrPass.encode("ascii")).decode("ascii")
My_token=requests.get("https://10.10.1.2/api/login",headers={"Authorization" : "Basic %s" % b64Val}, verify=False)
token_contents = My_token.content.decode("utf-8").replace('"', '')
#token_test = 'Token ' + token_contents
token_test = 'token ' + token_contents
#token_test = 'TOK:' + token_contents
#token_test = 'Basic ' + token_contents
#token_test = 'token=' + token_contents
header = {'Authorization' : token_test}
url = 'https://10.10.1.2/api/types/instances'
r = requests.get(url, headers=header, verify=False)
см. Мои закомментированные строки. Я попробовал все различные типы настроек токена.
Я думал, что мне нужно было преобразовать токен из байтов в строку и удалить из него двойные кавычки, My_tokenСвойство .content оригинальное значение выглядит так.
b'"YWRtaW46MTU2OTE4NzkwMgg3NzpjZDdlZWEyNmI2NDJmOTY0ZmI5ZGQ3YzBiNnI2ZTNlZQ"'
Просто пытаюсь выяснить, что я неправильно понимаю, взяв объект My_token, который работает нормально и регистрирует меня, но затем возвращает токен на следующемзапрос я пытаюсь выполнить.спасибо
[ОБНОВЛЕНИЕ и ИСПРАВЛЕНИЕ]
благодаря комментариям stovfl я смог узнать больше и увидеть свои ошибки.я переборщил и сделал это более сложным, чем нужно;).Мне просто нужно было поцеловать KISS и просто выполнить базовую аутентификацию с моим содержимым токена. Lol.
r_test = reports.get ('https://10.10.1.2/api/types/instances', auth = ("admin", token_contents), verify = False)