Làm cách nào để kết nối API PHP với Android Studio?

Làm cách nào để xây dựng API REST? . Trong hướng dẫn này, chúng tôi sẽ cố gắng trả lời những câu hỏi này và sẽ tạo một hệ thống đăng ký người dùng hoàn chỉnh

Nếu bạn chưa quen với việc phát triển Android thì trước tiên bạn phải học cách phân tích cú pháp bằng hướng dẫn này. Phân tích cú pháp JSON trong Android

Hãy bắt đầu với việc tạo cơ sở dữ liệu và tập lệnh API REST

Nội dung chi tiết

1. Tạo cơ sở dữ liệu

Khởi động máy chủ của bạn và tạo một cơ sở dữ liệu mới với tên android_app

Làm cách nào để kết nối API PHP với Android Studio?
Làm cách nào để kết nối API PHP với Android Studio?

Sau khi tạo cơ sở dữ liệu bây giờ chúng ta cần tạo một bảng người dùng. Sao chép mã dưới đây và chạy nó trong phần SQL của máy chủ của bạn

2. Tạo bảng người dùng

--
-- Table structure for table `users`
--
CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Indexes for dumped tables
--
--
-- Indexes for table `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `users`
--
ALTER TABLE `users`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

Sau khi tạo bảng của người dùng, đây là giao diện của nó trong dạng xem Cấu trúc

Làm cách nào để kết nối API PHP với Android Studio?
Làm cách nào để kết nối API PHP với Android Studio?
bảng kiến ​​trúc

3. API REST của PHP

Bây giờ chúng ta cần viết một API PHP đơn giản sẽ được sử dụng để trao đổi dữ liệu giữa ứng dụng và máy chủ web. Thực hiện theo các bước đơn giản dưới đây để tạo API

  1. Tạo một thư mục mới có tên androidapp bên trong htdocs/www
  2. Tạo một tệp PHP mới trong androidAppFolder và đặt tên là api. php

Để tránh bất kỳ sự phức tạp nào của các tệp, chúng tôi sẽ chỉ sử dụng một api. php cho toàn bộ chức năng API REST. Bạn có thể sao chép mã dưới đây và dán nó vào api của bạn. tập tin php. Nó có chú thích ở mỗi bước để bạn có thể hiểu nó một cách dễ dàng

api. php


num_rows>0){
        $response["error"] = TRUE;
        $response["message"] ="Sorry email already found.";
        echo json_encode($response);
        exit;
    }else{
        $signupQuery = "INSERT INTO users(name,email,password) values('$name','$email','$password')";
        $signupResult = mysqli_query($db_con,$signupQuery);
        if($signupResult){
            // Get Last Inserted ID
            $id = mysqli_insert_id($db_con);
            // Get User By ID
            $userQuery = "SELECT id,name,email FROM users WHERE id = ".$id;
            $userResult = mysqli_query($db_con,$userQuery);
            
            $user = mysqli_fetch_assoc($userResult);
            
            $response["error"] = FALSE;
            $response["message"] = "Successfully signed up.";
            $response["user"] = $user;
            echo json_encode($response);
            exit;
        }else{
            $response["error"] = TRUE;
            $response["message"] ="Unable to signup try again later.";
            echo json_encode($response);
            exit;
        }
        
    }
}else if(isset($_POST["type"]) && ($_POST["type"]=="login") && isset($_POST["email"]) && isset($_POST["password"])){
    //login user
    $email = $_POST["email"];
    $password = md5($_POST["password"]);
    $userQuery = "select id,name,email from users where email = '$email' && password = '$password'";
    $result = mysqli_query($db_con,$userQuery);
    // print_r($result); exit;
    if($result->num_rows==0){
        $response["error"] = TRUE;
        $response["message"] ="user not found or Invalid login details.";
        echo json_encode($response);
        exit;
    }else{
        $user = mysqli_fetch_assoc($result);
        $response["error"] = FALSE;
        $response["message"] = "Successfully logged in.";
        $response["user"] = $user;
        echo json_encode($response);
        exit;
    }
}else {
    // Invalid parameters
    $response["error"] = TRUE;
    $response["message"] ="Invalid parameters";
    echo json_encode($response);
    exit;
}
?>

Bạn có thể thử chạy mã này bằng cách sử dụng người đưa thư

Làm cách nào để kết nối API PHP với Android Studio?
Làm cách nào để kết nối API PHP với Android Studio?
API đăng ký

Làm cách nào để kết nối API PHP với Android Studio?
Làm cách nào để kết nối API PHP với Android Studio?
API đăng nhập

Tham số quan trọng nhất là loại thực sự giúp phân biệt giữa API đăng nhập và đăng ký

Đây là tất cả những gì chúng ta cần làm ở phía máy chủ, bây giờ chúng ta cần bắt đầu làm việc trên Ứng dụng Android bằng Android Studio

4. Tạo một dự án Android Studio mới

Làm cách nào để kết nối API PHP với Android Studio?
Làm cách nào để kết nối API PHP với Android Studio?
dự án đăng ký đăng nhập

Thêm đoạn mã sau vào màu sắc. xml


    #d11617
    #B31718
    #FF4081
    #FFFFFF

Sau khi tạo và Project Android Studio mới, bây giờ chúng ta cần tạo thêm 4 hoạt động

  • giật gânhoạt động
  • Đăng nhậpHoạt động
  • Hoạt động đăng ký
  • Trang chủHoạt động

5. AndroidManifest. xml Quyền INTERNET

    
6. Thư viện của bên thứ ba Loopj & Picasso.

Chúng tôi sẽ sử dụng loopj để truy cập dữ liệu từ URL và Picasso để tải hình ảnh từ URL trong bản dựng. lớp (Mô-đun. ứng dụng)

implementation 'com.loopj.android:android-async-http:1.4.9'
implementation 'com.squareup.picasso:picasso:2.5.2'

mô-đun. Ứng dụng hoàn thành mã

apply plugin: 'com.android.application'
android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.tutorialscache.loginsignup"
        minSdkVersion 14
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:support-annotations:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.loopj.android:android-async-http:1.4.9'
    implementation 'com.squareup.picasso:picasso:2.5.2'
}

7. GlobalClass. java

Tạo một lớp mới GlobalClass và mở rộng nó bằng Ứng dụng. Phiên bản lớp này sẽ giúp chúng tôi truy cập URL CƠ SỞ và cũng cung cấp cho chúng tôi một phiên bản ứng dụng

import android.app.Application;
public class GlobalClass extends Application {
    public static final String BASE_URL = "http://192.168.18.8:8888/androidApp/api.php";
//    public static final String BASE_URL = "http:/localhost:8888/androidApp/api.php";
    private static GlobalClass singleton;
    @Override
    public void onCreate() {
        super.onCreate();
        singleton = this;
    }
    public static GlobalClass getInstance() {
        return singleton;
    }
}

To launch GlobalClass at the start of the application add the application name in the name attribute in of AndroidManifest.xml

8. WebReq. java

Tạo tên Lớp mới WebReq và làm theo mã. Lớp WebReq được sử dụng để gửi yêu cầu trên máy chủ. Nó có Phương thức GET/POST để trả về dữ liệu JSON từ một URL nhất định

________số 8_______

9. AndroidManifest. bộ lọc ý định xml

Intent-Filter (bộ lọc ý định) được sử dụng để biến các hoạt động cụ thể thành hoạt động của trình khởi chạy. Bằng cách thêm bộ lọc ý định bên trong SplashActvity, hoạt động này sẽ trở thành hoạt động trình khởi chạy của chúng tôi và sẽ chạy khi bắt đầu ứng dụng


    
    
        
        
            
                
                
            
        
        
        
        
    

10. Hoạt động chính. java

Lớp MainActivity sẽ được sử dụng làm hoạt động chính cho tất cả các hoạt động khác trong ứng dụng, do đó, chúng tôi sẽ truy cập vào các phương thức MainActivity

Làm cách nào để kết nối API với Android Studio?

Bạn sẽ thấy phần Hạn chế chính. Nếu không, bấm đúp vào khóa API
Trong Hạn chế ứng dụng, hãy chọn Ứng dụng Android
Nhấp vào THÊM MỤC
Nhập tên gói ứng dụng của bạn
Nhập dấu vân tay chứng chỉ SHA-1 để xác thực ứng dụng của bạn. Sử dụng dấu vân tay chứng chỉ phát hành

Làm cách nào để kết nối cơ sở dữ liệu PHP với Android Studio?

Đây là khi người dùng đã đăng ký. .
Bước 1. Tạo cơ sở dữ liệu mySQL trong phpMyAdmin. .
Bước 2. Tạo 3 file php. .
Bước 3. Các thành phần nên có trong Android Studio. .
Bước 4. Thiết kế hoạt động_main. xml. .
Bước 5. Tạo một lớp có tên Design the. .
Bước 6. Viết mã trong MainActivity. java. .
Bước 7. Bạn có thể kiểm tra ứng dụng của bạn

Làm cách nào để viết API bằng PHP cho ứng dụng Android?

Ứng dụng Android – Truy cập API PHP REST . Sau đó, chúng tôi đặt bộ điều hợp này thành phần tử ListView để hiển thị các hàng dữ liệu MySQL. Khi khởi chạy MainActivity, chúng tôi gọi AsyncTask để truy cập PHP MySQL REST API. creating a ListView Adapter to add the list of items returned as the API response. Then we set this adapter to the ListView element to display MySQL data rows. On launching the MainActivity, we invoke the AsyncTask to access PHP MySQL REST API.

Chúng tôi có thể sử dụng PHP trong Android Studio không?

Có thể bạn chưa biết hoặc chưa biết rằng bạn có thể sử dụng PHP để phát triển ứng dụng Android của mình. Chúng tôi có thể sử dụng PHP làm phụ trợ cho các Ứng dụng Android của mình và tôi tin tưởng rằng chúng hoạt động hoàn hảo với nhau. Bất kỳ ứng dụng Android nào cần đăng nhập và đăng ký tài khoản đều có thể sử dụng hiệu quả PHP trên back-end của nó.