[flutter] 플러터에서 GET 메소드를 사용하여 특정 아티스트의 음악 정보를 가져오는 방법은 무엇인가요?
먼저, http 패키지를 사용하여 GET 요청을 보낼 수 있는지 확인해야 합니다. pubspec.yaml
파일에서 http 패키지를 import 하도록 추가해주세요.
dependencies:
flutter:
sdk: flutter
http: ^0.13.0
이제, 아티스트의 음악 정보를 가져오기 위해 GET 요청을 보내야 합니다. 다음은 GET 요청을 보내는 예제 코드입니다.
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';
class ArtistMusicScreen extends StatefulWidget {
final String artistName;
ArtistMusicScreen({required this.artistName});
@override
_ArtistMusicScreenState createState() => _ArtistMusicScreenState();
}
class _ArtistMusicScreenState extends State<ArtistMusicScreen> {
List<dynamic> musicList = [];
@override
void initState() {
super.initState();
fetchMusicData();
}
void fetchMusicData() async {
var url = Uri.parse('https://api.example.com/artist/${widget.artistName}/music');
var response = await http.get(url);
if (response.statusCode == 200) {
var data = json.decode(response.body);
setState(() {
musicList = data['musicList'];
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.artistName),
),
body: ListView.builder(
itemCount: musicList.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(musicList[index]['title']),
subtitle: Text(musicList[index]['album']),
);
},
),
);
}
}
위 코드에서는 ArtistMusicScreen
이라는 StatefulWidget을 생성하고, artistName
을 매개변수로 받습니다. initState
에서는 fetchMusicData
메소드를 호출하여 GET 요청을 보내고, 응답을 받은 후 musicList
에 음악 정보를 저장합니다.
build
메소드에서는 musicList
를 사용하여 ListView.builder를 생성하여 음악 목록을 표시합니다.
해당 코드에서 https://api.example.com/artist/${widget.artistName}/music
는 아티스트의 음악 정보를 가져오기 위한 API URL 입니다. 실제 사용하는 API의 URL로 변경해주세요. 또한, 가져오는 데이터의 형식에 따라 json.decode(response.body)
에서 데이터 응답을 파싱하도록 수정해야 합니다.
플러터에서 GET 메소드를 사용하여 특정 아티스트의 음악 정보를 가져오는 방법을 알려드렸습니다. 추가적인 질문이 있다면 언제든지 물어보세요.