Отправка файла в запросе python

Нужно отправить файл по api, не могу справиться с кодировкой. Файл формата pdf нужно кодировать base64 и отправить в пост запросе. Если я правильно понимаю, то необходимо открыть файл, прочитать, кодировать и отправить. Но что-то идет не так - файл приходит на сервер, там виден в нужном формате, но открыть не могу - битый. Значит в кодировкой косяк.

url = 'http://...'
headers = {
    'X-Api-Key': '.....',
    'Content-Type': 'application/json'
}
with open('s.pdf', 'rb') as file:
    f = f'data:application/pdf;base64,{base64.b64encode(file.read()).decode()}'
payload = json.dumps({"name": "s.pdf", "contents": f})
r = requests.post(url, headers=headers, data=payload)

Ответ 200. Но файл не читаемый. Не могу разобраться, что случается с кодировкой и что необходимо сделать. Возможно из-за того, что читаю файл в байтах, а нужно в строку.


Ответы (0 шт):