parliament
parliament

Reputation: 371

RESTful web Service for Android Application

I have an application and I need to get some data from my database(MySQL and it stays on web, not local). I think a simple RestFul webservice will be the best option for me to access this database and get the data. However, I m not able to create the webservice. I did some researches but I got confused. All I need is just accessing the database and get a few data from the table. Please give me some help to create the neccessary webservice. I don't want it to be a complex webservice. Thank to you all

Upvotes: 0

Views: 1492

Answers (2)

Blue_Alien
Blue_Alien

Reputation: 2177

Here is a link, You may seen this while surfing, I know this is not an answer , but I cannot comment bcz I dnt have enough Rep.

http://www.androidhive.info/2014/01/how-to-create-rest-api-for-android-app-using-php-slim-and-mysql-day-12-2/

I used this in one of my project, customization was very easy..and a great tutorial.

Upvotes: 0

Aiyaz Parmar
Aiyaz Parmar

Reputation: 562

this is php page of web-service. in this userid is taken from android java file that requesting that data. and after that selecting data from mySql it will simply echo all data and that will be given to java file as response.

seluser_profile.php

<?php

    //$con=mysql_connect("localhost","root","");
    //mysql_select_db("android_db",$con);
    $con=mysql_connect("localhost","root","");
    mysql_select_db("android_db",$con);
    $uname=$_POST['userid'];
    $q="select * from user_details where username='$uname'";
    $rec=mysql_query($q);

    if(mysql_num_rows($rec)==1)
    {
        $arr=mysql_fetch_array($rec);
        echo $arr[0]+" "+$arr[2]+" "+$arr[3];   
    }
    else
    {
        echo "false";
    }
?>

Java code for requesting to web service.

HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://10.0.0.2/webservice/seluser_profile.php");

            try {
                // Add your data
                //Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_LONG).show();
                List<NameValuePair> namevpair = new  ArrayList<NameValuePair>(2);
                namevpair.add(new  BasicNameValuePair("userid",valueIWantToSend));//in this first argument is name of post variable which we will use in php web service as name of post varible $_POST['fname'];

                httppost.setEntity(new UrlEncodedFormEntity(namevpair));

                // Execute HTTP Post Request
                HttpResponse response = httpclient.execute(httppost);
                str = inputStreamToString(response.getEntity().getContent()).toString();
                //Toast.makeText(getApplicationContext(), "your answer="+str, Toast.LENGTH_LONG).show();
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
            } catch (IOException e) {
                // TODO Auto-generated catch block
            }

use this java code in doInBackground method of Asynctask class. otherwise it will give you network handler exception.

private StringBuilder inputStreamToString(InputStream is) {
            String line = "";
            StringBuilder total = new StringBuilder();
            // Wrap a BufferedReader around the InputStream
            BufferedReader rd = new BufferedReader(new InputStreamReader(is));
            // Read response until the end
            try {
             while ((line = rd.readLine()) != null) {
               total.append(line);
             }
            } catch (IOException e) {
             e.printStackTrace();
            }
            // Return full string
            return total;
           }

and also add this function for string building from inputstream.

Upvotes: 1

Related Questions