繁体   English   中英

如何通过 python 中的 post 请求发送文件,类似于 curl? (W3C 验证者)

[英]How to send files via post request in python similar to curl? (W3C validator)

我正在尝试将本地 html 文件从我的计算机发送到 W3C 的https://validator.nu/以验证它。 我发现这个 curl 命令在终端中运行良好:

curl -H "Content-Type: text/html; charset=utf-8" \
    --data-binary @FILE.html \
    https://validator.w3.org/nu/?out=gnu

但是如何在 python 中进行与上述 curl 命令等效的发布请求?

我已经尝试了以下方法,但它不能正常工作。

headers = {
    'Content-Type': 'text/html',
    'charset': 'utf-8',
}
url = "https://validator.w3.org/nu/?out=gnu"
files = {'upload_file': open('filename.html','rb')}
r = requests.post(url, files=files, data=data, headers=headers)
print(r.text)

有人可以帮我在 python 中提出请求吗?

您需要将文件内容作为二进制数据发送:

import requests

headers = {
    'Content-Type': 'text/html',
    'charset': 'utf-8',
}
url = "https://validator.w3.org/nu/?out=gnu"
with open("filename.html", "rb") as f:
    data = f.read()
r = requests.post(url, data=data, headers=headers)
print(r.text)

暂无
暂无

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

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