23
Май
2022

Как послать post запрос с csrf токеном

Хочу послать post запрос на свой сайт на django, что бы добавить комментарий, для этого нужен csrf token. Вроде в headers я его и добавляю, но мой сервер отвечает Forbidden (CSRF token missing.): /product/azregmgzczfspbesz. requests отдает ошибку 403 То есть мой запрос просто отклонен.

Код запроса

import requests

url = 'http://127.0.0.1:8000/product/azregmgzczfspbesz'

def main():

    client = requests.session()
    client.get(url)

    if 'csrftoken' in client.cookies:
        csrftoken = client.cookies['csrftoken']
    else:
        csrftoken = client.cookies['csrf']

    data = dict(content="testreq")
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0',
               'Cookie': f'csrftoken={csrftoken}; sessionid=2bfxxgv499y88yqh8bj0qhtgv1s1di9j'}
    res = requests.post(url=url, data=data, headers=headers)
    print(res)


if __name__ == "__main__":
    main()

Форма html:

        <form method="post">
                {% csrf_token %}
                <textarea type="text" name="content" cols="60" rows="12" maxlength="5000" required id="id_content">
                </textarea><br>

                <button type="submit">Отправить</button>
        </form>

Источник: https://ru.stackoverflow.com/questions/1412894/%D0%9A%D0%B0%D0%BA-%D0%BF%D0%BE%D1%81%D0%BB%D0%B0%D1%82%D1%8C-post-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81-%D1%81-csrf-%D1%82%D0%BE%D0%BA%D0%B5%D0%BD%D0%BE%D0%BC

Тебе может это понравится...

Добавить комментарий