In this post, I will show you How to use Retrofit in Android.
Retrofit is a new born baby of web services such as AsyncTask, JSONParsing and Volley. This post is Split into Two Parts.
- First Part Contains Architecture of Retrofit and How to create MySQL DB and PHP Scripts for Basic Operations.
- Second Part Contains how to perform Retrofit Operations in Android.
Architecture of Retrofit Web Service
We need 3 Things for Complete Retrofit Architecture.
- RestAdapter
- An Interface with all networking methods and parameters.
- Getter Setter Class to save data coming from server.
Project Structure:
Create MySQL DataBase and PHP Scripts.
Following image shows my database structure.
PHP Scripts:
I created
db_config.php which contains the script to connect DB.
<?php
/**
* Database config variables
*/
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "retrofit_example");
$db = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_DATABASE);
if($db == false){
echo "No connection";
}
?>
I created
db_function.php which contains the script to execute queries.
<?php
include("db_config.php");
function insertData($name,$age,$mobile,$email){
global $db;
$result=mysqli_query($db , "INSERT INTO personal_detail(name,age,mobile,email) VALUES('$name','$age','$mobile','$email')")or die(mysqli_error($db));
return $result;
}
function displayAll(){
global $db;
$result=mysqli_query($db , "SELECT * FROM personal_detail")or die(mysqli_error($db));
return $result;
}
function deleteData($id){
global $db;
$result=mysqli_query($db , "DELETE FROM personal_detail WHERE id = '$id'")or die(mysqli_error($db));
return $result;
}
function updateData($id,$name,$age,$mobile,$email){
global $db;
$result=mysqli_query($db , "UPDATE `personal_detail` SET `name`='$name',`age`='$age', `mobile`='$mobile', `email`='$email' WHERE id = '$id'")or die(mysqli_error($db));
return $result;
}
?>
I created
insertData.php which contains the script to insert data.
<?php
include ('db_function.php');
$response = array();
//Getting post data
$name = $_REQUEST['name'];
$age = $_REQUEST['age'];
$mobile = $_REQUEST['mobile'];
$email = $_REQUEST['email'];
if (isset($_REQUEST['name']) && isset($_REQUEST['age']) && isset($_REQUEST['mobile']) && isset($_REQUEST['email'])){
$result=insertData($name,$age,$mobile,$email);
if ($result) {
$response["success"] = 1;
$response["message"] = "Successfully saved";
echo json_encode($response);
}
else {
$response["success"] = 0;
$response["message"] = "Oops! An error occurred.";
echo json_encode($response);
}
}
else {
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
echo json_encode($response);
}
?>
I created
displayAll.php which contains the script to display all data from DB.
<?php
include ('db_function.php');
$response = array();
$result = displayAll();
if(mysqli_num_rows($result)>0) {
$response["details"] = array();
while ($row = mysqli_fetch_array($result)){
$data = array();
$data["id"]=$row["id"];
$data["name"]=$row["name"];
$data["age"]=$row["age"];
$data["mobile"]=$row["mobile"];
$data["email"]=$row["email"];
array_push($response["details"], $data);
}
if($result){
$response["success"] = 1;
$response["message"] = "Successfully Displayed";
echo json_encode($response);
}
else{
$response["success"] = 0;
$response["message"] = "Try Again";
echo json_encode($response);
}
}
else {
// no results found
$response["success"] = 0;
$response["message"] = "No Details Found";
echo json_encode($response);
}
if($db == true){
mysqli_close($db); //Closing the Connection
}
?>
I created
deleteData.php which contains the script to delete a data from DB.
<?php
include ('db_function.php');
$response = array();
//Getting post data
$id = $_REQUEST["id"];
if(isset($id)){
$result = deleteData($id);
if($result){
$response["success"] = 1;
$response["message"] = "Successfully Deleted";
echo json_encode($response);
}
else{
$response["success"] = 0;
$response["message"] = "Try Again";
echo json_encode($response);
}
}
else {
// no results found
$response["success"] = 0;
$response["message"] = "Required Fields are Missing";
echo json_encode($response);
}
if($db == true){
mysqli_close($db);
}
?>
I created
updateData.php which contains the script to update a data from DB.
<?php
include ('db_function.php');
$response = array();
//Getting post data
$id = $_REQUEST["id"];
$name = $_REQUEST['name'];
$age = $_REQUEST['age'];
$mobile = $_REQUEST['mobile'];
$email = $_REQUEST['email'];
if (isset($id) && isset($name) && isset($age) && isset($mobile) && isset($email)){
$result=updateData($id,$name,$age,$mobile,$email);
if ($result) {
$response["success"] = 1;
$response["message"] = "Successfully updated";
echo json_encode($response);
}
else {
$response["success"] = 0;
$response["message"] = "Oops! An error occurred.";
echo json_encode($response);
}
}
else {
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
echo json_encode($response);
}
?>
References:
- MakeInfo:Retrofit Android Tutorial
- Retrofit Android example
Goto Next Part:
You are wrong. You can't get POST values with $_REQUEST method.
ReplyDeleteThe Purpose of using $_REQUEST is to accept data via POST or GET Methods
ReplyDelete