Interacting with the Internet is crucial for most apps to function. In Flutter the http package is used to send the data to the internet. In this article, we will explore the same topic in detail. To send data to the internet through your application follow the below steps:
- Import the http package
- Send data to the server through the http package
- Change the response into custom dart object
- Display the response
Importing The http Package:
To install the http package use the below command in your command prompt:
or, if you are using the flutter cmd use the below command:
flutter pub get
After the installation add the dependency to the pubsec.yml file as shown below:
import 'package:http/http.dart' as http;
Send Data to the Server:
In this article, we will create an Album data and send it to JSONPlaceholder through the http.post() method.
Converting the Response:
Though making a network request is no big deal, working with the raw response data can be inconvenient. To make your life easier, convert the raw data (ie, http.response) into dart object. Here we will create an Album class that contains the JSON data as shown below:
Convert http.Respone to an Album:
Now, follow the below steps to update the fetchAlbum() function to return a Future<Album>:
- Use the dart: convert package to convert the response body into a JSON Map.
- Use the fromJSON() factory method to convert JSON Map into Album if the server returns an OK response with a status code of 200.
- Throw an exception if the server doesn’t return an OK response with a status code of 200.
Ask User For an Album Title:
Now create a TextField for the user to enter a title and a RaisedButton to send data to the server. Also, define a TextEditingController to read the user input from a TextField as shown below:
Display the Response:
Use the FlutterBuilder widget to display the data on the screen as shown below:
Complete Source Code: