Python 具有标题和数据的请求

Python 具有标题和数据的请求,python,curl,python-requests,Python,Curl,Python Requests,我正在尝试将下面的cURL命令转换为Python中的请求 curl -H 'customheader: value' -H 'customheader2: value' --data "Username=user&UserPassword=pass" https://thisismyurl 据我所知,可以获取标题和帖子数据。那么,我如何做这两个像卷发 这就是我正在尝试的: url = 'myurl' headers = {'customheader': 'value', 'custom

我正在尝试将下面的cURL命令转换为Python中的请求

curl -H 'customheader: value' -H 'customheader2: value' --data "Username=user&UserPassword=pass" https://thisismyurl
据我所知,可以获取标题和帖子数据。那么,我如何做这两个像卷发

这就是我正在尝试的:

url = 'myurl'
headers = {'customheader': 'value', 'customheader2': 'value'}
data = 'Username=user&UserPassword=pass'

requests.get(url, headers=headers, data=data)
返回:
HTTPError:htp405:methodnotallowed

如果在使用
--data
命令行参数时使用post:
missingargumentinterror:HTTP 400:Bad Request

,则
curl
将切换到
post
请求。在Python中执行同样的操作:

requests.post(url, headers=headers, data=data)
从:

-d
-data

(HTTP)将POST请求中的指定数据发送到HTTP服务器,其方式与浏览器在用户填写HTML表单并按下提交按钮时的方式相同。HTTP服务器,就像用户填写HTML表单并按下提交按钮时浏览器所做的那样。这将导致curl使用内容类型application/x-www-form-urlencoded将数据传递给服务器

您可能需要手动相应地设置
内容类型
标题,或者为
数据
参数使用字典(并让
请求
为您将其编码为正确的格式;
内容类型
标题也为您设置):


你的意思是和身体接触吗?是的,有可能。是的,很奇怪。同样,是请求的文档:)在我使用request.post时,如我的问题中所提到的(很糟糕),我收到了400个错误请求。然而!当我把数据放进字典时,它起作用了,谢谢@JavaNoob:那将是
内容类型
的标题。通过将
内容类型
标题设置为
application/x-www-form-urlencoded
,可以使原始版本正常工作。
url = 'myurl'
headers = {'customheader': 'value', 'customheader2': 'value'}
data = {'Username': 'user', 'UserPassword': 'pass'}

requests.post(url, headers=headers, data=data)