繁体   English   中英

使用 Python 中的 requests.post 将变量作为 PDF 文件发送

[英]Send variable as PDF file with requests.post in Python

我有一个 PDF 文件作为 python 中的字节变量

file = b'%PDF-1.4\\n1 0 obj\\n<<\\n/Title (\\xfe\\xff)\\n/Creator (\\xfe\\xff)...R\\n>>\\nstartxref\\n63581\\n%%EOF\\n'

我想通过 requests.post 发送这个文件

upload_file_request = requests.post(url, files={'file' : open(file, 'rb')}, headers=headers_json)

但是我收到编码错误,例如'utf-8' codec can't decode byte 0xfe in position 28: invalid start by等。 这样做的正确方法是什么?

更新
好的,所以我所做的是使用tempfile来保存我的变量,然后从那里读取它

    file = NamedTemporaryFile(delete=False)
    file_name = file.name
    file.write(doc_file)
    file.seek(0)

    upload_passport_file_request = requests.post(url,
                 files={"file": ("PDF", open(file_name, 'rb'), "application/pdf")},
                 headers=headers_turnkey)
   
    file.close()
    os.unlink(file_name)

不是最漂亮的解决方案,但它有效

您正在发布一个名为“file”的文件。 那就是你的PDF内容就是文件名。 您需要发布数据。

upload_file_request = requests.post(url, data=file)

请参阅此处如何正确操作: https : //www.w3schools.com/PYTHON/ref_requests_post.asp# :~: text=%20Python%20Requests%20post%20%28%29%20Method%20%201,certain% 20HTTP%20authentication.%20A%20String%20or...%20More%20

https://www.w3schools.com/PYTHON/showpython.asp?filename=demo_requests_post

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM