Flutter

Flutter httpパッケージの使い方|GET・POST・ヘッダー指定の基本

Flutterのhttpパッケージを初心者向けに解説します。GET、POST、headers、JSON送信、エラー処理、APIクライアント化の基本を整理します。

この記事の目次
  1. この記事の結論
  2. 追加とimport
  3. GETの基本
  4. POSTでJSONを送る
  5. APIクライアントに分ける
  6. 実装後に確認すること
  7. よくあるつまずき
  8. 次に読む記事
  9. まとめ

httpパッケージは、FlutterでREST APIへアクセスする時によく使う基本パッケージです。まずはGETとPOST、headers、JSONの扱いを理解しましょう。

この記事の結論

GETはデータ取得、POSTはデータ送信に使います。JSON APIではheadersにContent-Typeを指定し、bodyをjsonEncodeして送信します。

追加とimport

flutter pub add http
import "dart:convert";
import "package:http/http.dart" as http;

GETの基本

final response = await http.get(
  Uri.parse("https://example.com/posts"),
);

if (response.statusCode == 200) {
  final data = jsonDecode(response.body);
  print(data);
}

POSTでJSONを送る

final response = await http.post(
  Uri.parse("https://example.com/posts"),
  headers: {"Content-Type": "application/json"},
  body: jsonEncode({"title": "Hello"}),
);

APIクライアントに分ける

画面から直接httpを呼ぶと、テストや変更が難しくなります。慣れてきたらApiClientやRepositoryに分けます。

class ApiClient {
  Future<Map<String, dynamic>> getJson(String path) async {
    final response = await http.get(Uri.parse(path));
    if (response.statusCode != 200) {
      throw Exception("Request failed");
    }
    return jsonDecode(response.body) as Map<String, dynamic>;
  }
}

実装後に確認すること

  • Uri.parseを使っているか
  • statusCodeを確認しているか
  • POSTでContent-Typeを指定しているか
  • 画面と通信処理を分ける準備があるか

よくあるつまずき

  • 文字列URLをそのまま渡して型エラーにする
  • JSON送信でheadersを忘れる
  • 通信エラーを握りつぶす
  • APIキーをアプリに直書きする

次に読む記事

まとめ

httpパッケージはFlutterのREST API通信の基本です。GET、POST、headers、jsonEncode/jsonDecodeを小さなコードで確認し、実務ではAPIクライアントへ分けましょう。