Fetch From API
import 'package:flutter/material.dart';
import 'package:flutter/semantics.dart';
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() => runApp(MaterialApp(home: Homepage()));
class Homepage extends StatefulWidget {
@override
_Homepagestate createState() => _Homepagestate();
}
class _Homepagestate extends State<Homepage> {
String Stringrespon;
List Listresponse;
Map Mapresponse;
List Listfacts;
Future fetchData() async {
http.Response response;
response = await http
.get('http://example.com');
if (response.statusCode == 200) {
setState(() {
Mapresponse = jsonDecode(response.body);
Listfacts = Mapresponse['Data'];
});
}
}
@override
void initState() {
fetchData();
// TODO: implement initState
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Fetch data'),
backgroundColor: Colors.blue,
),
body: Mapresponse == null
? Container()
: SingleChildScrollView(
child: Column(
children: <Widget>[
// Text(
// Mapresponse['category'].toString(),
// style: TextStyle(fontSize: 30),
// ),
ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemBuilder: (context, index) {
return Container(
margin: EdgeInsets.all(10),
child: Column(
children: <Widget>[
//Image.network(Listfacts[index]['image_url']),
Text(
Listfacts[index]['LeaveTypeName'].toString(),
style: TextStyle(
fontSize: 24, fontWeight: FontWeight.bold),
),
Text(
Listfacts[index]['CreatedDate'].toString(),
style: TextStyle(fontSize: 15),
),
],
),
);
},
itemCount: Listfacts == null ? 0 : Listfacts.length,
)
],
),
),
);
}
}
Upload to Api
import 'package:flutter/material.dart';
import 'SignUp.dart';
import 'dart:convert';
import 'package:http/http.dart' as http;
class Home extends StatefulWidget {
final String username;
Home({
Key key,
@required this.username,
}) : super(key: key);
@override
_Login createState() => _Login();
}
class _Login extends State<Home> {
Future upData(String reqDate, String fromdate, String todate,
String description, int fdays, int hdays, int typeleave) async {
var body = json.encode({
"EmployeeId": 19,
"LeaveTypeId": typeleave,
"RequestDate": reqDate,
"NoofFullDay": fdays,
"NoofHalfDay": hdays,
"Datefrom": fromdate,
"Dateto": todate,
"Description": description,
"Status": 1,
"CreatedBy": 20,
"UpdatedBy": null,
"CreatedDate": reqDate,
"UpdatedDate": null,
"IsDelete": false,
"IsActive": true,
});
http.Response response;
response = await http.post(
"http://example.com/save",
body: body,
headers: {'Content-type': 'application/json'});
}
//call updata
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Smple Login",
home: Scaffold(
resizeToAvoidBottomPadding: false,
body: Center(
child: Container(
child: RaisedButton(onPressed: () {
upData(
reqDateController.text,
fromdateController.text,
todateController.text,
descriptionController.text,
int.parse(fdaysController.text),
int.parse(hdaysController.text),
int.parse(_myState),
);
}),
),
),
),
);
}
}
Fetch With Parameter
Future fetchData() async {
var body =
json.encode({"IsActive": true, "IsDelete": false, "CompanyId": 18});
http.Response response;
response = await http.post("http://example.com",
body: body, headers: {'Content-type': 'application/json'});
if (response.statusCode == 200) {
setState(() {
mapresponse = jsonDecode(response.body);
listfacts = mapresponse['Data'];
});
}
}
//Access
listfacts[index]['Data']),