Как именно передать параметр тела СООБЩЕНИЯ с помощью запросов python

#python #python-requests #http-post

Вопрос:

Я пытаюсь предоставить параметр «mfa-код» для запроса post с использованием запросов python, но в ответ я получаю, что параметр «mfa-код» отсутствует, хотя я пытаюсь предоставить его через requests.post(url, data={"mfa-code": "0000"}) и также пытался requests.post(url, json={"mfa-code": "0000"}) .

Вот что я пытаюсь отправить.

 POST /login2 HTTP/1.1
Host: redacted.net
Cookie: session=qexMWyQnLtSlBI8B005qnVW4OYvEwEV2; verify=wiener
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: text/html,application/xhtml xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://redacted.net/login2
Content-Type: application/x-www-form-urlencoded
Content-Length: 13
Origin: https://redacted.net
Upgrade-Insecure-Requests: 1
Dnt: 1
Sec-Gpc: 1
Te: trailers
Connection: close

mfa-code=0000
 

И это запрос, который я отправляю со своим скриптом python

 import requests

url = "redacted.net"
data={"mfa-code": "0000"}
r = reqeusts.post(url, data=data)
print(r.text)
 

Это приводит к тому, что в ответе указывается только:
«Отсутствует параметр» mfa-код»»

Я обратил внимание в ответе и на то, как mfa-код окружен’, поэтому я пошел в репитер burp и поставил одинарные кавычки на mfa-код и, конечно же, получил ту же ошибку. Затем я попробовал использовать другие параметры, такие как json=json.dumps(данные), но для того же результата, что и для запросов, требуется параметр тела СООБЩЕНИЯ типа переменная=данные, а не объект json.

Что я здесь упускаю? Или это то, что запросы python не могут сделать?

Комментарии:

1. Ваш код не отправляется application/x-www-form-urlencoded в качестве типа контента. Возможно, в этом и заключается проблема.

2. Может быть, попробуем r = requests.post(url, params={'mfa-code': '0000'}) , так как в сообщении об ошибке говорится Missing parameter 'mfa-code'

3. @mama «params=» — это вещь для получения, на самом деле не работает с ПОЧТОЙ, но да, я тоже пробовал это в своем отчаянии, ха-ха.

4. Я добавил headers = {'Content-type': 'application/x-www-form-urlencoded'} , а затем изменил свой запрос на публикацию следующим r = requests.post(url, headers=headers, data=data) образом, но результат все тот же.