Thursday, 5 December 2013

REST+JSON Web service Example in Android.

Download this project-->REST+JSONWebserviceExample.zip
output:

activity_main.xml:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/ScrollView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    </LinearLayout>

</ScrollView>

MainActivity.java:
package com.ram.restjsonwebserviceexample;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.StrictMode;
import android.widget.TextView;

@SuppressLint("NewApi")
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
setContentView(R.layout.activity_main);
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(
"http://www.cheesejedi.com/rest_services/get_big_cheese.php?puzzle=");
TextView textView = (TextView) findViewById(R.id.textView1);
try {

HttpResponse response = httpclient.execute(httppost);
String jsonResult = inputStreamToString(
response.getEntity().getContent()).toString();

JSONArray jsonArray = new JSONArray(jsonResult);

for (int i = 0; i < jsonArray.length(); i++) {
textView.append("id: "
+ jsonArray.getJSONObject(i).getString("id").toString()
+ "\n");
textView.append("level: "
+ jsonArray.getJSONObject(i).getString("level")
.toString() + "\n");
textView.append("time_in_secs: "
+ jsonArray.getJSONObject(i).getString("time_in_secs")
.toString() + "\n");
textView.append("par: "
+ jsonArray.getJSONObject(i).getString("par")
.toString() + "\n");
textView.append("initials: "
+ jsonArray.getJSONObject(i).getString("initials")
.toString() + "\n");
textView.append("quote: "
+ jsonArray.getJSONObject(i).getString("quote")
.toString() + "\n");
textView.append("time_stamp: "
+ jsonArray.getJSONObject(i).getString("time_stamp")
.toString() + "\n");
textView.append("-------------------------------------------------"
+ "\n");

}

// textView.setText(jsonResult);

} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

private StringBuilder inputStreamToString(InputStream is) {
String rLine = "";
StringBuilder answer = new StringBuilder();

InputStreamReader isr = new InputStreamReader(is);

BufferedReader rd = new BufferedReader(isr);

try {
while ((rLine = rd.readLine()) != null) {
answer.append(rLine);
}
}

catch (IOException e) {
e.printStackTrace();
}
return answer;
}
}


AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ram.restjsonwebserviceexample"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.ram.restjsonwebserviceexample.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

5 comments:

  1. your tuts were awsome.bro! do u have any tutorial connecting php api and android application?
    i mean ajax results from php that displays on android app.!
    -s.shivasurya,
    www.i-visionblog.com

    ReplyDelete

  2. Nice blog..! I really loved reading through this article... Thanks for sharing such an amazing post with us and keep blogging...
    Pimples Treatment in Hyderabad
    best Pimples Treatment in Madinaguda
    Pimples Treatment in Gachibowli
    Pimples Treatment in Banjarahills

    ReplyDelete

  3. Nice Blog. Derma Care provide special care for your skin, hair, nails, and genitalia. Our aim is to be a centre of excellence in providing world-class care for skin patients in Himayat Nagar, Hyderabad.
    To give our clients the best, top quality care for their skin needs. Our team of professionals takes a wide spectrum of expertise and dedication to keep of skin care and beauty dermatology.
    Dermatologist in Hyderabad
    Skin Specialist in Hyderabad
    Skin Whitening Treatment in Hyderabad
    Hair Transplant in Hyderabad
    Hair Growth Treatment in Hyderabad
    Permanent Hair Removal in Hyderabad
    Laser Hair Removal in Hyderabad
    Laser Tattoo Removal in Hyderabad
    Pimple Treatment in Hyderabad

    ReplyDelete