【发布时间】:2020-08-09 20:28:24
【问题描述】:
我在PythonAnywhere 上部署了一个基于flask 的python 应用程序。它包含一个需要以下请求标头的 API:
app_name: <app-name>
app_key: <app-key>
下面是代码:
@app.route('/api/app/get_id', methods=['POST'])
def get_id():
try:
if 'app_name' and 'app_key' in request.headers:
"""
SOME CODE
"""
else:
return jsonify({"status": "unauthorized", "error": "authentication parameters missing"}), 401
except Exception as e:
log.error("Exception occurred {}".format(e))
如您所见,它需要app_name 和app_key。如果在标头中未找到,则 API 仅返回错误。我从邮递员那里调用这个 API 并包含了 app_name 和 app_key :
但它总是抛出error authentication parameters missing。在我的本地测试中,它运行良好。我还尝试通过将日志记录如下进行调试:
@app.route('/api/app/get_id', methods=['POST'])
def get_id():
try:
log.error(request.headers) # <-- logging
if 'app_name' and 'app_key' in request.headers:
"""
SOME CODE
"""
else:
return jsonify({"status": "unauthorized", "error": "authentication parameters missing"}), 401
except Exception as e:
log.error("Exception occurred {}".format(e))
但app_name 和app_key 也不存在于日志文件中。看起来由于某种原因PythonAnywhere 不接受这些请求标头。有谁知道问题是什么,我该如何解决。请帮忙。谢谢
【问题讨论】:
标签: python flask python-requests http-headers pythonanywhere