Невозможно повторить запрос POST с телом JSON - PullRequest
0 голосов
/ 23 декабря 2018

Я использую Scrapy для репликации POST-запроса на сайт, и я уверен, что передаю правильные аргументы формы, но сайт почему-то не отвечает, как следует.

Копирование curl запрос от Chrome дает (он изменен):

curl 'https://example.com/somepath' -H 'origin: https://example.com/' -H 'x-requested-with: XMLHttpRequest' -H 'pragma: no-cache' -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36' -H 'content-type: application/json'--data '{"foor":"var"}' --compressed

Вот мой запрос Scrapy:

FormRequest(url="https://example.com/somepath", formdata={'foo': 'var'})

1 Ответ

0 голосов
/ 23 декабря 2018

Вам не хватает включить заголовок Content-Type, а также вы не сможете выполнить этот запрос с помощью FormRequest.Просто используйте обычный Request с правильным телом:

import json

...

Request(
    url="https://example.com/somepath", 
    body=json.dumps({'foo': 'var'}), 
    headers={'Content-Type': 'application/json'},
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...