我已经在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
不接受这些请求标头。有谁知道是什么问题,我该如何解决。请帮忙。谢谢
'app_name' and 'app_key'
在 Python 中计算为 True,因此您的 if 语句询问是否关键 True 在标题中,它可能不是。
尝试使用 if 'app_name' in request.headers and 'app_key' in request.headers'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句