Ответ 1
Здесь вам не нужно использовать .read()
, просто просто передайте объект напрямую. Вам нужно явно указать заголовок Content-Type; curl
делает это при использовании --data
, но requests
не делает:
with open('data','rb') as payload:
headers = {'content-type': 'application/x-www-form-urlencoded'}
r = requests.post('https://IP_ADDRESS/rest/rest/2', auth=('userid', 'password'),
data=payload, verify=False, headers=headers)
Я использовал объект открытого файла в качестве менеджера контекста, чтобы он также автоматически закрывался для вас, когда выйдет блок (например, происходит исключение или requests.post()
).