Here is a simple example of doing Http calls in Flutter.
In this example we will try to fetch some JSON value from the below url
https://jsonplaceholder.typicode.com/posts/1
You can read more from here.
Add Dependencies
First you need to add the http plugin in dependencies.
dependencies: http: <latest_version>
The latest version of http can be found here (https://pub.dartlang.org/packages/http).
Example
Lets look at a simple example where we fetch some data and show it in the UI.
import 'package:flutter/material.dart'; import 'dart:async'; import 'dart:convert'; import 'package:http/http.dart' as http; Future<Post> fetchPost() async { final response = await http.get('https://jsonplaceholder.typicode.com/posts/1'); if (response.statusCode == 200) { // If the call to the server was successful, parse the JSON return Post.fromJson(json.decode(response.body)); } else { // If that call was not successful, throw an error. throw Exception('Failed to load post'); } } class Post { final int userId; final int id; final String title; final String body; Post({this.userId, this.id, this.title, this.body}); factory Post.fromJson(Map<String, dynamic> json) { return Post( userId: json['userId'], id: json['id'], title: json['title'], body: json['body'], ); } } class ServiceCall extends StatefulWidget { ServiceCall({Key key, this.title}) : super(key: key); final String title; @override _ServiceCallState createState() => _ServiceCallState(); } class _ServiceCallState extends State<ServiceCall> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: FutureBuilder<Post>( future: fetchPost(), builder: (context, snapshot) { if (snapshot.hasData) { return new Padding( padding: new EdgeInsets.all(10.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.start, children: <Widget>[ Text('USER ID : ${snapshot.data.userId}'), Text('TITLE : ${snapshot.data.title}'), Text('BODY : ${snapshot.data.body}'), ], )); } else if (snapshot.hasError) { return Text("Error : ${snapshot.error}"); } // By default, show a loading spinner return CircularProgressIndicator(); }, ), ), ); } }
Pingback: GridView Demo in Flutter – CODERZHEAVEN