我已經部署了一個基于燒瓶的 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
提交
取消