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

Setting header on test client doesn't seem to work

我正在尝试设置 header 'Authorization': 'Bearer foo'。但是,在 PyCharm 的调试器中调试应用程序时,我在 request 中找不到任何显示 header 已设置的内容。当我使用 Postman 发送请求时, header 确实出现了。如何在 Flask 的测试客户端中正确发送 headers?

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

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

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'。 运行ning 在 PyCharm 的调试 window 中,request.headers['Authorization'] 也正确设置。

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