Dart – サーバーからデータ取得(HTTP)

今回は、HTTPメソッドを使ってサーバーからデータを取得する方法について調べてみようと思います。

環境はFlutter + Dartで、httpパッケージを使って実装してみました。

それでは、早速みてみましょう。

httpパッケージをImportする

  1. pubspec.yamlを開きます。
  2. dependenciesに画像のように、パッケージ名とバージョンを設定します。
    1. 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通信する方法についてみてみましたが、自分も勉強しながら記事を書いてあるため、間違っているところがあるかもしれません。

コメントを残す