python - 我如何使用 Python requests lib 提交 https post 请求
问题描述
我正在尝试使用 python 'requests' lib 提交 https 帖子。但是,我一直遇到此错误“CSRF 验证失败。请求中止”
我已经查看了论坛上报告的所有类似问题,但无法找到解决方案。
下面是我的python代码。感谢任何帮助。
import requests
payload = {
'targetip': 'www.ndtv.com'
}
header = {
'User-Agent': 'python-requests/2.20.1',
'Accept-Encoding': 'gzip, deflate',
'Accept': '*/*',
'Connection': 'keep-alive',
'Referer':'https://dnsdumpster.com/'
}
url = r'https://dnsdumpster.com/'
with requests.session() as s:
res = s.get(url)
cookie = s.cookies
res = requests.post(url, data=payload, headers = header, cookies = cookie)
print(res.text)
解决方案
它缺少请求正文csrfmiddlewaretoken
,您可以在 cookie 中获取它
with requests.session() as s:
res = s.get(url)
payload['csrfmiddlewaretoken'] = s.cookies['csrftoken']
res = requests.post(url, data=payload, headers = header, cookies = s.cookies)
print(res.text)
推荐阅读
- javascript - 如何删除所有以某个id开头的文件
- r - 组合多边形保持宽度
- bash - 在一个命令中连接到标准输出并从标准输出读取
- javascript - 如何使用 Javascript 拥有多个按钮?
- docker - docker-compose 文件无法构建图像
- arrays - winbugs:数组索引大于数据类型分类(序数)模型的数组上限
- java - 如何正确读取 zip 文件到字符串?
- c# - Azure Pipelines dotnet restore 错误:$(AssemblyInfo.AssemblyFileVersion)' 不是有效的版本字符串
- java - 使用 Stream 从文件中逐字存储
- python - 如何在每8个字符的字符串中插入一个子字符串并在Python中继续?