Как загрузить ответ на POST-запрос с сайта в виде JSON файла?

Мне необходимо загрузить ответ на POST-запрос с сайта https://www.avast.com/hackcheck/ в виде JSON файла. Но мой запрос возвращает ошибку 400.

Код:

URL = 'https://identityprotection.avast.com/v1/web/query/site-breaches/unauthorized-data'
params = {'emailAddresses':['[email protected]']}
headers = {'Vaar-Version': '0'}

req = requests.post(URL, params, headers)

Запрос на сайте работает корректно:

Запрос на сайте работает корректно

Что я делаю не так?


Ответы (1 шт):

Автор решения: Jack_oS

Дайте в заголовках больше полей:

import requests

URL = 'https://identityprotection.avast.com/v1/web/query/site-breaches/unauthorized-data'
HEADERS = {
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36',

    'Vaar-Header-App-Product': 'hackcheck-web-avast',
    'Vaar-Version': '0',

    'Accept': 'application/json, text/plain, */*',
    'Content-Type': 'application/json;charset=UTF-8',
    'Host': 'identityprotection.avast.com',
    'Origin': 'https://www.avast.com',
    'Referer': 'https://www.avast.com/'
}
PAYLOAD = {
    'emailAddresses': ['[email protected]']
}

и отправьте данные в json формате, как советовал вам gil9red:

r = requests.post(URL, headers=HEADERS, json=PAYLOAD)

В ответ статус:

>>> r.status_code
200

и содержимое:

>>> r.content
b'{"breaches":{"3720":{"breachId":3720,"site":"nihonomaru.net","recordsCount":1696773,"description":"In April 2015, Nihonomaru\'s user database was breached and 1.6 million user records were compromised. In October 2016, the stolen data was shared publicly on few hacker forums and websites.","publishDate":"2017-04-10T00:00:00Z","statistics":{"usernames":1696593,"passwords":1696773,"emails":1696485}},"3164":{"breachId":3164,"site":"cfire.mail.ru","recordsCount":12880232,"description":"In July and August of 2016, two criminals carried out attacks on three separate forums hosted by Mail.ru, including CFire. The hackers used known SQL injection vulnerabilities found in older vBulletin forum software to obtain access to the databases. Shortly after the breach itself, the contents of CFire\'s database were leaked publicly. The database contains usernames, email addresses, and MD5 hashed passwords for just under 13 million users.","publishDate":"2017-02-14T00:00:00Z","statistics":{"usernames":12880232,"passwords":12880222,"emails":12845820}}},"data":{"nihonomaru.net":{"[email protected]":[{"breachId":3720,"usernameBreached":true,"passwordBreached":true}]},"cfire.mail.ru":{"[email protected]":[{"breachId":3164,"usernameBreached":true,"passwordBreached":true}]}},"summary":{"[email protected]":{"breaches":[3720,3164]}}}'
→ Ссылка