Отправить данные формы значения ключа с помощью пост-запроса в Python - PullRequest
0 голосов
/ 16 сентября 2018

Я могу сделать запрос Post с помощью postMan, и я получаю правильные данные, но когда я отправляю то же самое с помощью 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 часа, чтобы уведомить меня о том, что ранняя дата теперь доступна.

Ответы [ 2 ]

0 голосов
/ 16 сентября 2018

Попробуйте использовать это:

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)
0 голосов
/ 16 сентября 2018

Чтобы сделать запрос POST, вы должны передать свои значения следующим образом:

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

Причина, по которой ваш предыдущий код не сделал запрос POST, заключается в том, что вы пытались передать свои значения в качестве параметров URLкоторый используется при выполнении запроса GET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...