pubspce.yaml 의 dependency 에 입력해준다.
http: ^0.13.3
http 패키지 사용을 위해 import 해준다.
as http 를 사용하게 되면 http.Response response = await http.get(Uri.parse('주소')); 와 같은 프리픽스를 붙여주여 더욱 명확하게 사용할 수 있다.
import 'package:http/http.dart' as http;
async 를 사용하는데 그 이유는 http의 get() 함수가 await를 포함하고 있어 비동기가 되기 때문이다.
void fetchData() async {
try {
http.Response response = await http.get(
Uri.parse(
'https://jsonplaceholder.typicode.com/albums'),
);
if (response.statusCode == 200) {;
String jsonData = response.body
List<dynamic> myJson = jsonDecode(jsonDate);
for (var item in myJson) {
String title = item['title'];
print(title);
}
} else {
print('Failed to load data. Status code: ${response.statusCode}');
}
} catch (e) {
print('Failed to load data. Error: $e');
}
}
void fetchData() async {
try {
http.Response response = await http.get(
Uri.parse(
'https://samples.openweathermap.org/data/2.5/weather?q=London&appid=b1b15e88fa797225412429c1c50c122a1',
),
);
String jsonData = response.body;
var myJson = jsonDecode(jsonData)['weather'][0]['description'];
print(myJson);
} catch (e) {
print('Failed to load data.');
}
}
- http.Response response = await http.get( Uri.parse( '주소') );
http 통신을 위해 http.Response 객체를 생성해주고 http.get(uri) 주소와 연결을 해 데이터를 받아온다. - if (response.statusCode == 200) {
통신 연결을 요청 후 잘 되었는지 상태코드를 응답 받는다.
- String jsonData = response.body
성공이라면 응답의 body 데이터를 String으로 변환 해준다.
- List<dynamic> myJson = jsonDecode(jsonDate);
그 후 내용들을 List에 담아준다. 이때 jsonDecode를 사용하여 List <String, dynamic> 을 리턴한다.
- for (var item in myJson) {
String title = item['title'];
print(title);
}
리턴 받은 값을 for 문으로 반복문을 돌려 해당하는 json의 'itle' 찾아 프린트한다.
'Flutter' 카테고리의 다른 글
외부 통신을 통해 JSON 파싱하기 (0) | 2023.10.31 |
---|---|
BasePage를 이용하여 공통 페이지 구성 만들기 (0) | 2023.10.30 |
함수로 위젯 표현하기 (0) | 2023.10.28 |
[Flutter] String 내에 특정 값 포함 여부 확인하기 (1) | 2023.10.24 |
Flutter 기초 (0) | 2023.10.17 |