[英]Pass cookie header with Flask test client request
我無法讓 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"}
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')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.