Advertisement
yudiwibisono

flutter_patch

May 27th, 2023
1,026
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 2.32 KB | None | 0 0
  1. import 'package:flutter/material.dart';
  2. import 'package:http/http.dart' as http;
  3.  
  4. void main() => runApp(MaterialApp(home: MyApp()));
  5.  
  6. class MyApp extends StatefulWidget {
  7.   const MyApp({Key? key}) : super(key: key);
  8.   @override
  9.   MyAppState createState() => MyAppState();
  10. }
  11.  
  12. class MyAppState extends State<MyApp> {
  13.   late Future<int> respPost; //201 artinya berhasil
  14.   String url = "http://127.0.0.1:8000/update_mhs_patch/";
  15.  
  16.   Future<int> fetchData() async {
  17.     //data disimpan di body
  18.     String nim = "13594022";
  19.     //nim tambahkan di url
  20.     //pastikan http.put! bukan post
  21.     final response = await http.patch(Uri.parse(url + nim),
  22.         headers: <String, String>{
  23.           'Content-Type': 'application/json; charset=UTF-8'
  24.         },
  25.         body: """
  26.      {
  27.      "nama": "Sandra Aulia"} """); //hanya ganti nama saja
  28.     return response.statusCode; //sukses kalau 200
  29.   }
  30.  
  31.   @override
  32.   void initState() {
  33.     super.initState();
  34.     respPost = Future.value(0); //init
  35.   }
  36.  
  37.   @override
  38.   Widget build(BuildContext context) {
  39.     return MaterialApp(
  40.       title: 'My App',
  41.       home: Scaffold(
  42.         appBar: AppBar(
  43.           title: const Text('My App'),
  44.         ),
  45.         body: Center(
  46.             child: Column(
  47.           mainAxisSize: MainAxisSize.min,
  48.           children: [
  49.             ElevatedButton(
  50.               onPressed: () {
  51.                 setState(() {
  52.                   respPost = fetchData();
  53.                 });
  54.               },
  55.               child: const Text('Klik untuk update data (patch)'),
  56.             ),
  57.             Text("Hasil:"),
  58.             FutureBuilder<int>(
  59.                 future: respPost,
  60.                 builder: (context, snapshot) {
  61.                   if (snapshot.hasData) {
  62.                     if (snapshot.data! == 200) {
  63.                       return Text("Proses Update patch Berhasil!");
  64.                     }
  65.                     if (snapshot.data! == 0) {
  66.                       return Text("");
  67.                     } else {
  68.                       return Text("Proses insert gagal");
  69.                     }
  70.                   }
  71.                   // default: loading spinner.
  72.                   return const CircularProgressIndicator();
  73.                 })
  74.           ],
  75.         )), //column center
  76.       ), //Scaffold
  77.     ); //Material APP
  78.   }
  79. }
  80.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement