我正在尝试在Android和我在AWS上设置的Flask服务器之间进行通信。我有一些数据放在JSONObject
中,我通过POST请求将其发送到服务器。
Flask服务器接收此JSON,对其进行解析,甚至进行适当的操作。但是,当我将Response
发送回Android时,它似乎根本无法识别它。
我相信我在Flask
返回部分出错了,但我不知道到底在哪里。
以下是Flask
返回代码:
parsed_results = parse_text(results)
#json_x = json.dumps({'id':str(status.inserted_id), 'Result':'OK', 'data': parsed_results})
return Response(json.dumps({'id': str(status.inserted_id), 'Result': 'OK', 'data': parsed_results, 'raw_data': results}), mimetype='application/json'), 200
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True)
以下是Android Listener
代码:
JsonObjectRequest request = new JsonObjectRequest(
Request.Method.POST,
URL,
data,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("JSON_TAG", response.toString());
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}
)
{
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return super.getParams();
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
//return super.getHeaders();
Map<String,String> headers = new HashMap<>();
headers.put("Content-Type","application/json");
return headers;
}
};
Android应用程序暂时闲置。我哪里错了?任何帮助将不胜感激。谢谢!
答案 0 :(得分:-1)
我解决了这个问题,伙计们。问题非常明显 - 来自服务器的返回语句不匹配。通过使用jsonify
,我能够将数据返回到服务器。
from flask import jsonify
results = parse_results(data)
return jsonify(results)
像魅力一样工作!