使用Python中的post请求发送Key值表单数据

问题描述 投票:1回答:2

我能够使用postMan发出Post请求,并且我得到了正确的数据但是当我使用python发送相同的内容时,我得到了不同的输出。正如您在我提出请求时使用postMan所见,我可以看到所需的输出。 enter image description here

但是当我使用我的下面的python代码做同样的事情时,它并没有给我所需的输出,总体上只给我一个填充了字段的HTML文本,似乎它发出了Get请求,不确定如果我的表单发送不正确

def checkDate(self):
        values ={'numberItems':1,
            'mode':'DriveTest',
            'officeId':592,
            'requestedTask':'DT',
            'firstName':'xxx',
            'lastName':'xxx',
            'dlNumber':'xxx',
            'birthMonth':05,
            'birthDay':31,
            'birthYear':123,
            'resetCheckFields':'true'}    
        r = requests.post('https://www.dmv.ca.gov/wasapp/foa/findDriveTest.do',params=values)
        tet=r.text
        print(tet)

实际的页面是https://www.dmv.ca.gov/wasapp/foa/findDriveTest.do,所以我在这里要做的是创建一个脚本,每4小时运行一次,通知我现在可以提供早期日期。

python post
2个回答
0
投票

要发出POST请求,您应该传递您的值,如下所示:

r = request.post('https://www.dmv.ca.gov/wasapp/foa/findDriveTest.do',data=values)

您以前的代码没有发出POST请求的原因是您尝试将值作为URL参数传递,这些参数在发出GET请求时使用


0
投票

试试这个:

import json
r = requests.post('https://www.dmv.ca.gov/wasapp/foa/findDriveTest.do',params=json.dumps(values), headers = {"content-type": "application/json"})
tet=r.text
print(tet)
© www.soinside.com 2019 - 2024. All rights reserved.