【发布时间】:2018-07-22 04:27:24
【问题描述】:
我正在尝试构建一个烧瓶应用程序,该应用程序从客户端获取文件,对其进行处理并发送返回响应。问题是应用程序在失败的情况下给出了正确的响应(如果没有收到文件),但是在成功的情况下,即在处理文件之后,没有向客户端返回任何响应。
from flask import Flask, request, jsonify
@application.route('/file', methods=['GET', 'POST'])
def sid():
"""
Process the PDF File, and return response
:return:
"""
print(request)
if request.method == 'POST':
if request.files:
result_after_processing = #After processing
print(result_after_processing) # This is giving expected output
return jsonify({'result': result_after_processing}, 200)
else:
return jsonify({'result': 'No file recieved'}, 400)
if __name__ == "__main__":
application.run(debug=True)
我使用邮递员将文件(通过文件上传 (multipart/for-data))发布到端点。
如果我发布文件以外的任何对象,如空或文本(失败情况),我将收到预期的{'result': 'No file received'}。但是,当我发送文件时,java.lang.NullPointerException 是结果。
我什至尝试将有效案例响应硬编码为{'result': 'HardCodedValue'},但 Pycharm RESTful 服务仍然返回java.lang.NullPointerException。原来,我的输出 result_after_processing 是 JSON。
注意:java.lang.NullPointerException 位于 Pro PyCharm 的 RESTful Web 服务上,而不是来自 Python。 Python 正确打印了预期的结果。
我工作了 5 个小时,在互联网上尝试了所有可能的解决方案,但仍然没有找到解决方案。请帮助提供您的意见。
谢谢。
【问题讨论】:
-
您在使用 Jython 吗?请给出错误堆栈跟踪。
-
@Jacky,我正在开发 Python 3.6。我想,
NullPointerException来自邮递员,因为我的回复是空的。 -
尝试使用其他客户端上传文件。
-
@stamaimer 感谢您的评论,我试过了,它奏效了。另外,邮递员是正确的,我使用的是 Pycharm 的 RESTful 服务。
标签: python flask flask-restful