我已经部署了一个基于烧瓶的 python 应用程序PythonAnywhere。它包含一个需要以下请求标头的 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不接受这些请求标头。有谁知道问题是什么,我该如何解决。请帮忙。谢谢
1 回答

jeck猫
TA贡献1909条经验 获得超7个赞
'app_name' and 'app_key'
在 Python 中计算为 True,因此您的 if 语句询问键 True 是否在标题中,并且可能不在。
尝试使用if 'app_name' in request.headers and 'app_key' in request.headers'
添加回答
举报
0/150
提交
取消