首页 > 解决方案 > 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 中得到处理,原因我不知道。

请问有什么问题吗?有没有办法让颤动来理解响应?

标签: pythonflutterdartflask

解决方案


我必须在我的帖子请求中添加标题:{“Content-Type”:“application/json”}。


推荐阅读