无法在 PythonAnywhere 上获得烧瓶 python API 的请求 headers
Not able to get request headers for flask python API on PythonAnywhere
我已经在 PythonAnywhere
上部署了一个基于 python 应用程序的烧瓶。它包含一个 API 需要下面的请求 headers:
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
。如果在 headers 中没有找到,那么 API 只是 returns 错误。我从邮递员那里调用这个 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
不接受这些请求 headers。有谁知道问题是什么,我该如何解决。请帮忙。谢谢
'app_name' and 'app_key'
在 Python 中的计算结果为 True,因此您的 if 语句询问键 True 是否在 headers 中,而它可能不在。
尝试使用 if 'app_name' in request.headers and 'app_key' in request.headers'
我已经在 PythonAnywhere
上部署了一个基于 python 应用程序的烧瓶。它包含一个 API 需要下面的请求 headers:
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
。如果在 headers 中没有找到,那么 API 只是 returns 错误。我从邮递员那里调用这个 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
不接受这些请求 headers。有谁知道问题是什么,我该如何解决。请帮忙。谢谢
'app_name' and 'app_key'
在 Python 中的计算结果为 True,因此您的 if 语句询问键 True 是否在 headers 中,而它可能不在。
尝试使用 if 'app_name' in request.headers and 'app_key' in request.headers'