Hello in this video we are going to cover how to fetch data from the internet. So this can be really useful. If for example, you're creating a social networking website, you have a database, you want to communicate with, you know, internet based services such as your database, get information about the user about the feed about the friends, etc, and put them on your application. Okay, so to do this, the first thing we need to do is add the haste TTP package and the dependency go to the pub spec dot yamo file and in the dependencies, what you want to do is so HTTP and this latest version. Then you want to go to packages get So, that leads you through Sorry, sorry, sorry, sorry, you want to go to 0.1 2.01. But make sure you, you know, have the latest version that is currently available.
Something click tacky they'll get now it should all work and then he patches upgrade. And there we go. So to actually have a look at the packages, I'm gonna go to pub dot.lang.org for slash packages for slash actually now or the studio. And you could say search for HTTP and select that one. And in here, you get whatever the latest version is. This is the version we have 0.1 2.0 plus So that is and you know, you can also have a look at HTTP install.
There should be a little section for that. Well, okay, so we've got HTTP now or not the package all set up, now, you know, to making, you know, basically a network request. So let's actually handle all of that. So if we go to our obligation to main the doc, you want to first of all import a few things we need to import. package. HTTP as you can see, this will now appear HTTP dot, semi colon.
We also need to include dot a synchronous imports dogs This will be required just for the example that we are using. Okay, and we want to put this as HTTP, so we can refer to it as HTTP anywhere in our application. And what we are going to do is create a method that's going to fetch a post from a website called JSON place. hold downs just allows us to get some information from there, but you can get it from your own server that doesn't really matter. And from here, we want to say future is going to be a future based event. So essentially saying no, no, there will be a response but we sometimes will be asynchronous.
Post is not working simply because we have not created that class yet. Which we will be creating very simply, final response equals await HTTP Okay. And in here, I'm gonna put the link to https colon four slash four slash JSON. placeholder, no go older, older. doc type code.com for slash posts slash next response dot status code is equal to 200 then that means it's been successful. Okay, so there's something wrong with this.
Also started Terkel type of blue CDs, who equals So didn't do the comparison, so return both From JSON, see bear with me more will be you know, revealed while it is fonts dot body again posts will all be sorted. When I implemented that method here will throw exception. So now let's create a class. So the class is going to be class post. In here, we're going to fall into the ID obviously, depending on the JSON data that you are actually getting back. Finally, it's going to be initialized.
Yeah, he'll be initialized in the constructor final in all the different The data you know that you're getting back you can format it this class the way you want to find more height or more body and post constructor. This is simply going to be setting up the values of this user ID. Id on my desktop title. Okay, next we're going to treat from JSON. In here, we need a map, string and dynamic so the key is dynamic and the value will be a dynamic type. That could be any data you want.
Pain here, we are going to proceed instance. And you know, the user ID will essentially be the this JSON file that you know that we will see you. And we'll get the user ID from the fingers like this. Obviously, depending on you know, the name and the format to get your JSON ID. So into JSON equals get image URL, you can get what every I think we're basically ready to go. So we're ready to implementing weird in our application.
If we go down, and in here, we'll go to this future Post like so. And then in future posts again added extra stuff unnecessarily because I am missing the final. This will be a post that we are getting would help if I actually knew how to spell must be initialized to one of these is not initialized. Oh yeah, let's just create the constructor. So we are going to close to Fetch post. There we go.
And now, what we're going to say is build a content snapshot working I'm not sure. Missing stuff. No, it's fine. Fine. I haven't, you know, haven't fully implemented it. snapshot dot data.
They will return snapshot data quite or cold on not sure hasn't aired. And then we'll go through the error text variable snapshots error. And what we'll say is by default will show a circular progress indicator. Oh, you know something's actually happening. So let's actually run this and see what we got. Now they're missing.
Hold on. If you still run we'll find that enough. Okay, so it's just running the Gradle test. It will be Done shortly. Okay, still trying to do it. Going to retry the task made semi-colon slowed it down for some reason.
Just realistically, give me an error. That's the case. Running the Gradle task, you should get on to build in it soon. built it. Yeah. Shut down to install in the APK as well very soon.
Yep, there we go. So that's the information that it's got from you know, the internet. So Go here, copy this to web browser type that in there we go as you can see, from say, if we was to you know post number two, the information will be you know, slightly different. So this is the information the title and we Yep. So that is all information from the last video there is to know that you need to know regarding and also selection that was regarding fetching data from the internet. Obviously you can construct this class the way you want to depending on the data that you have.
And depending on what you're returning, you can change your day. Killer Fairmount, I guess would be more this class than anything else. But if you have any more questions, feel free to pop me a message, obviously right if I was to essentially just do a hot reload again. So you get that quick reload. And you know once you've got the data and then you'll put it up. That's a if you have any questions, feel free to shoot me a message and I look forward to seeing you in the next video.