http post Api:
Code:
main.dart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'user_model.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
Future<UserModel> createUser(
String name, String jobTitle, String mobileno) async {
final String apiUrl = "https://reqres.in/api/users";
final response = await http.post(apiUrl,
body: {"name": name, "job": jobTitle, "Mobile No.": mobileno});
if (response.statusCode == 201) {
final String responseString = response.body;
return userModelFromJson(responseString);
} else {
return null;
}
}
class _MyHomePageState extends State<MyHomePage> {
UserModel _user;
final TextEditingController nameController = TextEditingController();
final TextEditingController jobController = TextEditingController();
final TextEditingController mobilenoController = TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Container(
padding: EdgeInsets.all(32),
child: Column(
children: <Widget>[
TextField(
controller: nameController,
),
TextField(
controller: jobController,
),
TextField(
controller: mobilenoController,
),
SizedBox(
height: 32,
),
_user == null
? Container()
: Text(
"New user : ${_user.name},ID = ${_user.id}, Mobile NO.:${_user.mobileno} is created successfully at time ${_user.createdAt.toIso8601String()}"),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () async {
final String name = nameController.text;
final String jobTitle = jobController.text;
final String mobileno = mobilenoController.text;
final UserModel user = await createUser(name, jobTitle, mobileno);
setState(() {
_user = user;
});
},
tooltip: 'Increment',
child: Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
}
user_model.dart
import 'dart:convert';
UserModel userModelFromJson(String str) => UserModel.fromJson(json.decode(str));
String userModelToJson(UserModel data) => json.encode(data.toJson());
class UserModel {
String name;
String job;
String mobileno;
String id;
DateTime createdAt;
UserModel({
this.name,
this.job,
this.mobileno,
this.id,
this.createdAt,
});
factory UserModel.fromJson(Map<String, dynamic> json) => UserModel(
name: json["name"],
job: json["job"],
mobileno: json["Mobile No."],
id: json["id"],
createdAt: DateTime.parse(json["createdAt"]),
);
Map<String, dynamic> toJson() => {
"name": name,
"job": job,
"Mobile No.": mobileno,
"id": id,
"createdAt": createdAt.toIso8601String(),
};
}
0 Comments