这可能是我遇到的最奇怪的错误,过去48个小时我一直在努力寻找解决方案。基本上,我有一个已经开发了一年半的Flask应用程序。一切正常,除了我的最后一项任务。我正在尝试将Elasticsearch与该应用程序集成,到目前为止,一切都可以在我的本地计算机(Mac OS X Catalina)上运行。但是,当我在服务器(DigitalOcean CentOS 7)上输入相同的代码时,它将失败。
具体来说,我试图获取json数据并将其合并到传递给Elasticsearch的搜索字符串中。相关代码如下:
从烧瓶导入请求,g,蓝图,json,响应,current_app,url_for
@search_api.route('/', methods=['POST'])
@jwt_required
def search():
"""
Full text search against user and events models
"""
req_data = request.get_json()
我在60多个其他API端点中使用了非常相似的代码,但没有一个函数运行不正常。最奇怪的是它可以在localhost上运行。我什至已经完成了打印语句,并且可以验证request.get_json()
返回的是空字典。但是,这仅在远程设备上,而不在本地计算机上。
这是我似乎无法修复的错误,因此希望有人以前可能已经看过此错误,并且可以向我指出正确的方向。 Flask版本是1.0.2。
我正在向邮递员提出要求。我试过了cURL,它也会返回相同的错误。
编辑:忘记添加错误:
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
该错误与request.get_json()没有任何数据直接相关。我打印该字典的内容为空。因此,问题在于json没有传递给函数。