2017-02-01 69 views
-1

我试图在Android和我在AWS上设置的Flask服务器之间进行通信。我有一些数据放在JSONObject之内,我通过POST请求将它发送到服务器。未收到来自服务器的适当JSON响应

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应用程序只是停留闲置。我哪里错了?任何帮助将不胜感激。谢谢!

回答

-1

我解决了这个问题,伙计们。问题非常明显 - 来自服务器的错误返回声明。通过使用jsonify,我能够将数据返回给服务器。

from flask import jsonify 

results = parse_results(data) 

return jsonify(results) 

工作就像一个魅力!

相关问题