如何在python请求、urllib2甚至pycurl中实现这个curl命令?

如何在python请求、urllib2甚至pycurl中实现这个curl命令?,python,curl,urllib2,pycurl,Python,Curl,Urllib2,Pycurl,如何在python请求、urllib2甚至pycurl中实现这个curl命令?我在stackoverflow和其他地方看到了大量与我所寻找的内容相近的示例,但没有一个示例显示同时使用用户名/密码和令牌进行身份验证(双因素身份验证)。我正在尝试使用双因素身份验证登录站点,然后使用cookies请求json数据。 因此,我有一个登录表单,需要发布“urserId”、“密码”和“令牌”(我相信该站点使用的是谷歌认证器令牌)。下面是我需要的工作curl命令,我想将这两个命令的功能转换为python cu

如何在python请求、urllib2甚至pycurl中实现这个curl命令?我在stackoverflow和其他地方看到了大量与我所寻找的内容相近的示例,但没有一个示例显示同时使用用户名/密码和令牌进行身份验证(双因素身份验证)。我正在尝试使用双因素身份验证登录站点,然后使用cookies请求json数据。
因此,我有一个登录表单,需要发布“urserId”、“密码”和“令牌”(我相信该站点使用的是谷歌认证器令牌)。下面是我需要的工作curl命令,我想将这两个命令的功能转换为python

curl -X POST  -H "Accept: Application/json" -H "Content-Type: application/json" http://example.com/rest/auth/login -d '{"userId":"myuserid", "password":"mypa$$word", "token":"321"}'

curl http://example.com/rest/search?q=e43f6f3bd6a0f0c0415accfh285f6a00b55552666b7s --cookie 'connect.sid=s%3BJAUAVY68925VclAlLZCV.Gy902343-x%20343seMBMsQodfdo-35'
我尝试了许多不同的组合,包括以下使用请求的组合:

payload = {"userId":"myuserid", "password":"mypa$$word", "token":"321"}
headers={'Accept': 'Application/json','Content-Type': 'application/json'}

with requests.session() as c:
    c.post('http://example.com/rest/auth/login', headers=headers, data=payload )
    cookies=c.cookies.get_dict()
    c.get('http://example.com/rest/global/config', cookies=cookies)

不幸的是,它导致了一个响应[400],它告诉我我没有正确使用凭据。

来自
请求

很多时候,您希望发送未进行表单编码的数据。如果传入的是
字符串而不是
dict
,则该数据将直接过帐

i、 e.您发布的不是
application/json
,而是(我假设)
application/x-www-form-urlencoded
,您的请求标题是:)

尝试使用
data=json.dumps(有效负载)