Передайте заголовок cookie с запросом клиента Flask - PullRequest
1 голос
/ 24 апреля 2019

У меня проблемы с получением тестового клиента Flask для передачи файлов cookie.Этот код работал, и я предполагаю, что что-то изменилось в моей среде, что нарушает это.Недавно я создал новый Python 3.7 virtualenv и установил Flask 1.0.2.

from flask import Flask, jsonify, request

app = Flask(__name__)


@app.route('/cookie_echo')
def cookie_echo():
    return jsonify(request.cookies)


with app.test_client() as client:
    response = client.get("/cookie_echo", headers={"Cookie": "abc=123; def=456"})
    print(response.get_data(as_text=True))

При запуске примера печатается {}, но я ожидаю, что он напечатает {"abc":"123","def":"456"}.

Если яЗапустите мое приложение через flask run, отправив заголовки с помощью curl:

$ curl -H "Cookie: abc=123; def=456" http://localhost:5000/cookie_echo
{"abc":"123","def":"456"}

1 Ответ

0 голосов
/ 25 апреля 2019

Client управляет файлами cookie, вы не должны передавать их вручную в headers={}. Из-за изменений в Werkzeug 0.15 передача заголовка Cookie вручную, который не был предназначен, больше не работает. Используйте client.set_cookie, чтобы установить cookie, или установите cookie в ответе, и он будет отправлен со следующим запросом.

c = app.test_client()
c.set_cookie('localhost', 'abc', '123')
c.set_cookie('localhost', 'def', '456')
c.get('/cookie_echo')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...