Sean
Sean

Reputation: 1123

receiving JSON response (android)

I am trying to send a JSON with the information email address, first and last names and expecting a response from the server to say {status: "Created"} or {status: "Resend"} and depending on the answer there would be a pop up message. I was wondering what I use to extract the information from the status class. Thanks! Here is my code to accept

protected void sendJson(final String email, final String firstN,
        final String lastN) {
    Thread t = new Thread() {
        public void run() {
            Looper.prepare(); // For Preparing Message Pool for the child
                                // Thread
            HttpClient client = new DefaultHttpClient();
            HttpConnectionParams.setConnectionTimeout(client.getParams(),
                    10000); // Timeout Limit
            HttpResponse response;
            JSONObject json = new JSONObject();
            try {

                // post in the url


                HttpPost post = new HttpPost(
                        "https://iphone-radar.com/accounts");
                json.put("email_address", email);
                json.put("first_name", firstN);
                json.put("last_name", lastN);
                StringEntity se = new StringEntity("JSON: "
                        + json.toString());
                se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
                        "application/json"));
                post.setEntity(se);
                response = client.execute(post);
                /* Checking response */
                if (response != null) {
                    String str = response.getEntity().toString();
                    if (str.equals("Created")) {
                        new AlertDialog.Builder(CreateAccount.this)
                                .setTitle("Account Creation Successful")
                                .setMessage(
                                        "An activation code has been sent to you. Please check your SPAM folder if you do not receive your activation code email")
                                .setNeutralButton("OK", null).show();
                    } else if(str.equals("Resend")) {
                        new AlertDialog.Builder(CreateAccount.this)
                                .setTitle("Code Resent")
                                .setMessage(
                                        "Your activation code has been resent to your email.\n\nIf you are not receiving your activation code, our email is being blocked. Please email us at '[email protected]' and we will manually send you a code.")
                                .setNeutralButton("OK", null).show();
                    }


                }
            } catch (Exception e) {
                e.printStackTrace();
            }

        }

Upvotes: 1

Views: 1844

Answers (1)

Femi
Femi

Reputation: 64700

You should convert the response to a string, then create a JSONObject. You can then just access the JSON object's properties. Try this:

org.json.JSONObject obj = new org.json.JSONObject(org.apache.http.util.EntityUtils.toString(response.getEntity()));
                    if ("Created".equals(obj.getString("status"))) {
                        new AlertDialog.Builder(CreateAccount.this)
                                .setTitle("Account Creation Successful")
                                .setMessage(
                                        "An activation code has been sent to you. Please check your SPAM folder if you do not receive your activation code email")
                                .setNeutralButton("OK", null).show();
                    } else if("Resend".equals(obj.getString("status"))) {
                        new AlertDialog.Builder(CreateAccount.this)
                                .setTitle("Code Resent")
                                .setMessage(
                                        "Your activation code has been resent to your email.\n\nIf you are not receiving your activation code, our email is being blocked. Please email us at '[email protected]' and we will manually send you a code.")
                                .setNeutralButton("OK", null).show();
                    }

Upvotes: 2

Related Questions