
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
아래와 같은 에러가 디버그 콘솔에 나오네요
Error: Couldn't resolve the package 'http' in 'package:http/http.dart'.
lib/main.dart:4:8: Error: Not found: 'package:http/http.dart'
import 'package:http/http.dart' as http;
^
lib/main.dart:39:33: Error: Method not found: 'get'.
final response = await http.get(url);
^^^
Error: Couldn't resolve the package 'http' in 'package:http/http.dart'.
lib/main.dart:4:8: Error: Not found: 'package:http/http.dart'
import 'package:http/http.dart' as http;
^
lib/main.dart:39:33: Error: Method not found: 'get'.
final response = await http.get(url);
^^^
Restarted application in 216ms.
작성한 코드 및 에러 메세지
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:http_sample/post_model.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'API Communication Sample'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
Future<List<Post>?> fetchData() async {
final url = Uri.parse('https://jsonplaceholder.typicode.com/posts');
final response = await http.get(url);
if (response.statusCode == 200) {
List jsonResponse = json.decode(response.body);
return jsonResponse.map((post) => Post.fromJson(post)).toList();
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Center(
child: FutureBuilder<List<Post>?>(
future: fetchData(),
builder: (BuildContext context, AsyncSnapshot<List<Post>?> snapshot) {
if (snapshot.hasData) {
return ListView.builder(
itemCount: snapshot.data!.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(snapshot.data![index].title),
subtitle: Text(snapshot.data![index].body),
);
},
);
} else {
return const Center(
child: CircularProgressIndicator(),
);
}
},
),
),
);
}
}
