如何通过 post 请求在 python 中发送文件,类似于 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 命令等效的 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 中提出请求吗?
您需要将文件内容作为二进制数据发送:
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)
我正在尝试将本地 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 中提出请求吗?
您需要将文件内容作为二进制数据发送:
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)