今回は、HTTPメソッドを使ってサーバーからデータを取得する方法について調べてみようと思います。
環境はFlutter + Dartで、httpパッケージを使って実装してみました。
それでは、早速みてみましょう。
httpパッケージをImportする

- pubspec.yamlを開きます。
- dependenciesに画像のように、パッケージ名とバージョンを設定します。
- http: ^0.12.0+2

3. パッケージを再取得します。
HTTP Getを実装する

ソースコードに上記のようにhttpパッケージをImportします。「as」を使わないと「get()」のように呼び出しますが、「as http」を使うことで「http.get()」のように使えます。

- データ取得の場合は非同期なので、asyncつけて非同期関数として指定しました。
- awaitは非同期関数の中で、同期処理をしたい時に使います。
- responseが正常の場合、「json.decode()」を使ってMap<String, dynamic>に変換します。
- json.decode()は「import ‘dart:convert’;」のようにdart:convertをImportしてから使えます。
- dynamic型は、Javaで言うとObject型と同じです。型を関係なく、保存します。
- MoviesResponse.fromJsonはモデル(Model)が持っている関数で、MapからMoviesResponse型に変換する関数です。

- 上記のようにfromJsonを設けることで、使う時には「MoviesResponse変数名.id」のように使うことができます。
- Mapをそのまま使うと「Map.get(Key)」のようになりますね。
終わりに
今回は、Dartでhttp通信する方法についてみてみましたが、自分も勉強しながら記事を書いてあるため、間違っているところがあるかもしれません。
