Server side:
import flask import flask.ext.sqlalchemy import flask.ext.restless app = flask.Flask(__name__) app.config['DEBUG'] = True app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db' SQLALCHEMY_TRACK_MODIFICATIONS=True db = flask.ext.sqlalchemy.SQLAlchemy(app) class Person(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Unicode, unique=True) birth_date = db.Column(db.Date) class Computer(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Unicode, unique=True) vendor = db.Column(db.Unicode) purchase_time = db.Column(db.DateTime) owner_id = db.Column(db.Integer, db.ForeignKey('person.id')) owner = db.relationship('Person', backref=db.backref('computers', lazy='dynamic')) db.create_all() manager = flask.ext.restless.APIManager(app, flask_sqlalchemy_db=db) manager.create_api(Person, methods=['GET', 'POST', 'DELETE']) manager.create_api(Computer, methods=['GET']) app.run(host='0.0.0.0', port=5000, debug=True)
Client Side :
Using volley post
RequestQueue queue = Volley.newRequestQueue(this); StringRequest postRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { @Override public void onResponse(String response) { // response Log.d("Response", response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // error Log.d("Error.Response", String.valueOf(error)); } } ) { @Override protected Map<String, String> getParams() { Map<String, String> params = new HashMap<String, String>(); params.put("name", "Anything"); return params; } }; queue.add( postRequest ); }
Output from log:
04-29 11:42:24.556 1890-1946/? I/Icing: Indexing done F3642025687382E430F3465743F12480D56AAC66 04-29 11:43:32.123 3147-3196/? E/Volley: [157] BasicNetwork. performRequest: Unexpected response code 415 for http://IP:5000/api/person 04-29 11:43:32.132 3147-3147/? D/Error.Response: com.android.volley.ServerError 04-29 11:45:19.365 1298-1311/? I/UsageStatsService: User[0] Flushing usage stats to disk