package com.Valluru;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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 org.json.JSONObject;
import android.app.ListActivity;
import android.content.Intent;
import android.net.ParseException;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class Food extends ListActivity {
String result = null;
InputStream is = null;
StringBuilder sb=null;
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
ListView list1;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list1 = (ListView) findViewById(android.R.id.list);
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2/atm.php");
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//paring data
String fd_id;
String fd_name;
try{
JSONArray jArray = new JSONArray(result);
JSONObject json_data=null;
for(int i=0;i<jArray.length();i++){
json_data = jArray.getJSONObject(i);
fd_id =json_data.getString("ATM_ID");
fd_name = json_data.getString("ATM_NAME");
nameValuePairs.add(new list<String, String>(fd_id, fd_name));
}
list1.setAdapter(new ArrayAdapter<NameValuePair>(getApplicationContext(),android.R.layout.simple_expandable_list_item_1,nameValuePairs));
}catch(JSONException e1){
Toast.makeText(getBaseContext(), "No ATM Found", Toast.LENGTH_LONG).show();
}catch (ParseException e1){
e1.printStackTrace();
}
}
}
//list.java
package com.Valluru;
import org.apache.http.NameValuePair;
import android.R.integer;
public class list<T,V> implements NameValuePair {
T data;
V text;
public list(T data, V text)
{
this.data = data;
this.text = text;
}
@Override
public String toString(){
return text.toString();
}
@Override
public String getName() {
return (String) data;
}
@Override
public String getValue() {
return (String) text;
}
}
// PHP code
<?php
mysql_connect("localhost","root");
mysql_select_db("FOOD");
$sql=mysql_query("select * from FOOD where FOOD_NAME like '%'");
while($row=mysql_fetch_assoc($sql)) $output[]=$row;
print(json_encode($output));
mysql_close();
?>
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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 org.json.JSONObject;
import android.app.ListActivity;
import android.content.Intent;
import android.net.ParseException;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class Food extends ListActivity {
String result = null;
InputStream is = null;
StringBuilder sb=null;
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
ListView list1;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list1 = (ListView) findViewById(android.R.id.list);
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2/atm.php");
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//paring data
String fd_id;
String fd_name;
try{
JSONArray jArray = new JSONArray(result);
JSONObject json_data=null;
for(int i=0;i<jArray.length();i++){
json_data = jArray.getJSONObject(i);
fd_id =json_data.getString("ATM_ID");
fd_name = json_data.getString("ATM_NAME");
nameValuePairs.add(new list<String, String>(fd_id, fd_name));
}
list1.setAdapter(new ArrayAdapter<NameValuePair>(getApplicationContext(),android.R.layout.simple_expandable_list_item_1,nameValuePairs));
}catch(JSONException e1){
Toast.makeText(getBaseContext(), "No ATM Found", Toast.LENGTH_LONG).show();
}catch (ParseException e1){
e1.printStackTrace();
}
}
}
//list.java
package com.Valluru;
import org.apache.http.NameValuePair;
import android.R.integer;
public class list<T,V> implements NameValuePair {
T data;
V text;
public list(T data, V text)
{
this.data = data;
this.text = text;
}
@Override
public String toString(){
return text.toString();
}
@Override
public String getName() {
return (String) data;
}
@Override
public String getValue() {
return (String) text;
}
}
// PHP code
<?php
mysql_connect("localhost","root");
mysql_select_db("FOOD");
$sql=mysql_query("select * from FOOD where FOOD_NAME like '%'");
while($row=mysql_fetch_assoc($sql)) $output[]=$row;
print(json_encode($output));
mysql_close();
?>
This code is the best example for CLIENT-SERVER communication between Android mobile and server
ReplyDeleteHi,
DeleteWhat is the best way to secure the http://10.0.2.2/atm.php link that exposes our DB.
I am in a twist to understand how to secure this call, as atm.php has my credentials to the DB.
You need some sort of jdbc odbc connection to database server, this way you can mask IP address details etc, for syntax you have to find it.
Delete