为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 PythonAnywhere 上获取烧瓶 python API 的请求标头

无法在 PythonAnywhere 上获取烧瓶 python API 的请求标头

喵喵时光机 2022-10-25 10:34:01
我已经部署了一个基于烧瓶的 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'


查看完整回答
反对 回复 2022-10-25
  • 1 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号