在测试客户端上设置标题似乎不起作用

时间:2015-09-02 00:44:44

标签: python testing flask werkzeug

我正在尝试设置标头'Authorization': 'Bearer foo'。但是,在PyCharm的调试器中调试应用程序时,我无法在request中找到表明已设置标头的任何内容。当我使用Postman发送请求时,标题会显示出来。如何在Flask的测试客户端中正确发送标题?

headers = {'Authorization': 'Bearer foo'}
test_response = self.app.post('/api_endpoint', headers=headers, data=dict(foo=bar))

1 个答案:

答案 0 :(得分:2)

我无法重现您的问题。我创建了一个简单的测试,标题设置正确。

from flask import Flask, request

app = Flask(__name__)

@app.route('/', methods=['POST'])
def index():
    return request.headers['Authorization']

with app.test_client() as c:
    r = c.post('/', headers={'Authorization': 'Bearer foo'}, data={'foo': 'bar'})
    print(r.data)

运行此命令,输出为b'Bearer foo'。在PyCharm的调试窗口中运行,request.headers['Authorization']也正确设置。

Connected to pydev debugger (build 141.1899)
>>> request.headers['Authorization']
Out[1]: 'Bearer foo'