2017-02-01 2 views
-1

AWS에서 설정 한 Flask 서버와 Android간에 통신을 시도하고 있습니다. JSONObject 안에 넣은 데이터가 있는데, POST 요청을 통해 서버로 보내고 있습니다.서버에서 적절한 JSON 응답을받지 못합니다.

Flask 서버는이 JSON을 수신하여 구문 분석하고 적절한 조작을 수행합니다. 그러나 Response을 다시 Android로 보내면 전혀 식별하지 못하는 것 같습니다.

나는 돌아가는 부분 인 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) 

을 안드로이드 Listener 코드입니다 :

다음은 Flask 리턴 코드의

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; 
     } 
}; 

안드로이드 응용 프로그램은 단지 유휴 유지됩니다. 내가 어디로 잘못 가고 있니? 어떤 도움이라도 대단히 감사하겠습니다. 감사!

답변

-1

나는 문제를 해결했다. 문제는 매우 분명했습니다. 서버의 반환 문이 일치하지 않았습니다. jsonify을 사용하여 데이터를 서버에 반환 할 수있었습니다.

from flask import jsonify 

results = parse_results(data) 

return jsonify(results) 

매력처럼 작동했습니다!