提问人:John 提问时间:12/17/2020 更新时间:12/17/2020 访问量:120
如何在类似于 curl 的 python 中通过 post 请求发送文件?(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命令等效的post请求呢?
我已经尝试了以下方法,但它无法正常工作。
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中做一个请求吗?
答:
0赞
SergiyKolesnikov
12/17/2020
#1
您需要将文件的内容作为二进制数据发送:
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)
评论