Php mysql api json
Ở phần 1 mình đã hướng dẫn các bạn cách tạo dịch vụ web với php và mysql cho phương thức GET và cách phân tích cú pháp json trong android với trang bị thêm. Ở phần 2 mình sẽ hướng dẫn các bạn tạo dịch vụ web theo phương thức POST bằng php và mysql Show Với phương thức GET thì dữ liệu được tìm thấy trên URL, còn phương thức POST thì hoàn toàn ngược lại, POST sẽ gửi dữ liệu qua một trường nhập trong android và được nhận dạng ở máy chủ thông qua tên (tên) của đầu vào đó. Chúng ta sẽ thực hiện tiếp với ví dụ ở phần 1, các trường nhập vào là tên, tuổi, lớp còn id thì mình đã thiết lập tự động tăng trên cơ sở dữ liệu nên có thể để null frameborder="0" allow="gia tốc kế; tự động phát; phương tiện được mã hóa; con quay hồi chuyển; ảnh trong ảnh" cho phép toàn màn hình> Create Web Service for POST methodĐể máy chủ nhận được dữ liệu bạn gửi từ máy khách android, bạn phải viết phương thức POST bằng dịch vụ web để máy chủ có thể hiểu và nhận thông tin bạn gửi lên. Chúng ta sẽ viết tiếp vào trong file api. php ở phần 1 Thêm đoạn mã được đánh dấu dưới đây vào tệp api. php = 1) { while ($row = mysql_fetch_assoc($resouter)) { $temparray[] = $row; } } echo json_encode($temparray); end: ?> Mình sẽ giải thích một chút ở đoạn code trên. Từ máy khách (Android) sẽ nhập vào 3 trường tên, tuổi, nclass và được nhận dạng ở máy chủ thông qua tên của 3 trường này theo phương thức POST
Yêu cầu bạn có thẻ xử lý trong ứng dụng android hoặc ở phía máy chủ tùy chọn, miễn sao thấy hợp lý là được Để kiểm tra chức năng POST vừa viết lúc nhổ chưa được, bạn sử dụng PostMan mình có giới thiệu ở phần 1 để kiểm tra xem nó có hoạt động không
Use method POST with Retrofit in AndroidĐể phía máy chủ nhận được thì bạn cần ĐĂNG ở máy khách, chúng ta tiếp tục sử dụng trang bị thêm để POST lên package com.dev4u.ntc.webservice.webservice; import com.dev4u.ntc.webservice.models.Student; import java.util.List; import okhttp3.ResponseBody; import retrofit2.Call; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; import retrofit2.http.POST; import retrofit2.http.Query; /** * IDE: Android Studio * Created by Nguyen Trong Cong - NTCDE.COM * Name packge: com.dev4u.ntc.webservice.models * Name project: WebService * Date: 3/24/2017 * Time: 17:52 */ public interface APIService { // GET students from server // Server return json array @GET("/student_manager/api.php") Call Ở client sẽ gửi lên name, age, nclass nên ta dùng @Field của retrofit và phải đi kèm với @FormUrlEncoded , sau khi POST lên thì client nhận về một String thông báo nên ta dùng Call Viết hàm InsertStudent trong androidHàm này sẽ gọi hàm insertStudent vừa được tạo trong Interface APIService và truyền vào name, age, nclass để post lên server private void insertStudent(String name, int age, String nclass) { mAPIService.insertStudent(name, age, nclass).enqueue(new Callback Mình chỉnh sửa activity_main. Sử dụng xml một chút, cho nó thêm một cái Nút, khi nhấn vào nút sẽ hiển thị Hộp thoại tùy chỉnh nhập vào các trường cần thiết, bạn có thể xem qua bài viết Hướng dẫn Hộp thoại tùy chỉnh ứng dụng Bố cục XML trong Android private void displayInsertDialog() { LayoutInflater inflater = getLayoutInflater(); View alertLayout = inflater.inflate(R.layout.layout_custom_dialog, null); final EditText edStudentName, edStudentAge, edStudentClass; edStudentName = (EditText) alertLayout.findViewById(R.id.edName); edStudentAge = (EditText) alertLayout.findViewById(R.id.edAge); edStudentClass = (EditText) alertLayout.findViewById(R.id.edClass); AlertDialog.Builder alert = new AlertDialog.Builder(this) .setTitle("Insert a new student") .setView(alertLayout) .setCancelable(false) .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(getBaseContext(), "Cancel", Toast.LENGTH_SHORT).show(); } }) .setPositiveButton("Insert", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // code for insert student String name = edStudentName.getText().toString(); String age = edStudentAge.getText().toString(); String nclass = edStudentClass.getText().toString(); if ("".equals(name) || "".equals(age) || "".equals(nclass)) { Toast.makeText(MainActivity.this, "Vui lòng nhập đầy đủ thông tin", Toast.LENGTH_LONG).show(); } else insertStudent(name, Integer.parseInt(age), nclass); } }); alert.create().show(); }
Để xem chi tiết hơn, bạn có thể tải xuống mã nguồn của mình để ở cuối bài viết Qua Phần 2 Hướng dẫn tạo Web Service bằng PHP và MYSQL cho ứng dụng di động này, bạn có thể hiểu đơn giản về cách tạo web service cho android cũng như cách tạo phương thức POST, GET ở server và cả ở client, sử dụng trang bị thêm Bài viết còn hơi loằng ngoằng và ngôn từ chưa được mạch lạc lắm, mong các bạn bỏ qua. D. Xin chân thành cảm ơn các bạn đã ghé thăm blog của mình Dự án trên Github. https. //github. com/trongcong/WebServiceAndroid Parse Json với trang bị thêm, POST với trang bị thêm, Tạo dịch vụ web, Tạo dịch vụ web bằng php và mysql, Dịch vụ web android |