python - Flutter 没有收到来自 Flask REST API 的响应
问题描述
我正在用颤振构建一个移动应用程序,并与我用 Flask 构建的休息 API 进行通信。不过,我对这两种技术很陌生。当我使用邮递员进行测试时,一切正常,但是当我从我的颤振应用程序进行测试时,请求实际上在我的 Flask 应用程序中处理并记录状态代码 200,但由于 Flutter 总是显示错误,响应没有得到返回或格式不正确而是说:XMLHttpRequest error
而不是json响应。
飞镖代码:
final String url = 'http://127.0.0.1:5000/endpoint';
http.Response response = await http.post(url, body: json.encode(body));
print(json.decode(response.body));
烧瓶代码:
@app.route('/endpoint', methods=['POST'])
def save_point():
try:
body = utils.bytes_to_dict(request.get_data())
assets = body.get('assets', [])
if len(assets) < 1:
raise Exception("'assets' is required")
admin.insert(data = {'selected_assets': assets, 'created_at': utils.gettime()}, id = 'selected_assets')
return jsonify({ # response is returned here
'status': True,
'message': 'Selected assets saved',
'data': assets
})
except Exception as e:
print('error', e)
return {
'status': False,
'message': str(e)
}
我已经尝试通过content-type
以下方式向请求中添加标头:
await http.post(url, body: json.encode(body), headers: {'Content-type': 'application/json'});
但这会导致请求无法在 Flask 中得到处理,原因我不知道。
请问有什么问题吗?有没有办法让颤动来理解响应?
解决方案
我必须在我的帖子请求中添加标题:{“Content-Type”:“application/json”}。
推荐阅读
- java - 如何在单个editText中添加多个sytleSpan?
- ssis - 使用脚本任务使用表名和日期的变量从表中删除记录
- python - 当链接查询参数有项目数而不是页码时如何抓取多个页面?
- selenium - 错误 selenium.common.exceptions.ElementNotInteractableException:消息:元素不可交互
- javascript - 我无法通过 post 路由输入对象,而只能在节点 js 中未定义
- mongodb - TypeError:无法使用nodejs在monogdb中读取null的属性“项目”
- css - 如何使 Div(紫色框)容器中的内容响应
- spring-mvc - 如何在spring mvc中将输入流(图像)显示到jsp?
- java - 没有文件的角度上传文件到后端(400错误请求)
- react-native - 简单示例 Expo / React Navigation 5