Search code examples
androidrestpostloopjandroid-async-http

POSTing JSON/XML using android-async-http (loopj)


I am using android-async-http and really liking it. I've run into a problem with POSTing data. I have to post data to the API in the following format: -

<request>
  <notes>Test api support</notes>
  <hours>3</hours>
  <project_id type="integer">3</project_id>
  <task_id type="integer">14</task_id>
  <spent_at type="date">Tue, 17 Oct 2006</spent_at>
</request>

As per the documentation, I tried doing it using RequestParams, but it is failing. Is this any other way to do it? I can POST equivalent JSON too. Any ideas?


Solution

  • Loopj POST examples - extended from their Twitter example:

    private static AsyncHttpClient client = new AsyncHttpClient();
    

    To post normally via RequestParams:

    RequestParams params = new RequestParams();
    params.put("notes", "Test api support"); 
    client.post(restApiUrl, params, responseHandler);
    

    To post JSON:

    JSONObject jsonParams = new JSONObject();
    jsonParams.put("notes", "Test api support");
    StringEntity entity = new StringEntity(jsonParams.toString());
    client.post(context, restApiUrl, entity, "application/json",
        responseHandler);