2017-02-01 4 views
-1

Ich versuche, zwischen Android und einem Flask-Server zu kommunizieren, den ich in AWS eingerichtet habe. Ich habe einige Daten, die ich in eine JSONObject gelegt habe, und ich sende das über eine POST-Anfrage an den Server.Keine angemessene JSON-Antwort vom Server empfangen

Der Flask-Server empfängt dieses JSON, analysiert es und führt sogar die entsprechenden Manipulationen durch. Wenn ich jedoch ein Response zurück an Android sende, scheint es es überhaupt nicht zu identifizieren.

Ich glaube, ich gehe falsch in die Flask Return-Teil, aber ich weiß nicht, wo genau.

Hier ist die Flask Rückgabecode:

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) 

Hier ist der Android Listener Code:

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

Die Android-Anwendung bleibt nur im Leerlauf. Wo gehe ich falsch? Jede Hilfe würde sehr geschätzt werden. Vielen Dank!

Antwort

-1

Ich löste das Problem, Leute. Das Problem war sehr offensichtlich - eine nicht übereinstimmende Rückgabeanweisung vom Server. Mit jsonify konnte ich die Daten an den Server zurückgeben.

from flask import jsonify 

results = parse_results(data) 

return jsonify(results) 

Arbeitete wie ein Charme!

Verwandte Themen