dio
HTTP ์์ฒญ ์ฒ๋ฆฌ ๋ฐ ์ธํฐ์
ํฐ๋ฅผ ์ง์ํ๋ Dart ์ธ์ด ๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Flutter์์ Dio๋ ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ HTTP ๋คํธ์ํน ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. Dio๋ฅผ ์ฌ์ฉํ๋ฉด HTTP ์์ฒญ์ ์ฝ๊ฒ ๋ง๋ค๊ณ ์์ ํ ์ ์์ต๋๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ GET, POST, PUT, DELETE ๋ฑ์ ๋ชจ๋ HTTP ๋ฉ์๋๋ฅผ ์ง์ํ๋ฉฐ, ์ฟ ํค ๊ด๋ฆฌ, ํ์ผ ์
๋ก๋ ๋ฐ ๋ค์ด๋ก๋, ์์ฒญ ์ทจ์, ์์ฒญ ํ์์์ ๋ฑ์ ๊ณ ๊ธ ๊ธฐ๋ฅ๋ ์ ๊ณตํฉ๋๋ค.
์ฃผ์๊ธฐ๋ฅ
โข
HTTP ์์ฒญ ์ฒ๋ฆฌ
โข
์ธํฐ์
ํฐ
โข
์ฟ ํค ๊ด๋ฆฌ
โข
ํ์ผ ์
๋ก๋ ๋ฐ ๋ค์ด๋ก๋
โข
์์ฒญ ์ทจ์ ๋ฐ ํ์์์ ์ค์
์์กด์ฑ
Dart install ๋ช ๋ น์ด
dart pub add dio
Dart
๋ณต์ฌ
Flutter install ๋ช ๋ น์ด
flutter pub add dio
Dart
๋ณต์ฌ
pubspec.yaml
dio: ^5.4.0
Dart
๋ณต์ฌ
import
import 'package:dio/dio.dart';
Dart
๋ณต์ฌ
๊ธฐ๋ณธ ์์์ฝ๋
import 'package:dio/dio.dart';
void fetchData() async {
Dio dio = Dio();
try {
Response response = await dio.get('https://api.example.com/data');
print(response.data);
} catch (error) {
print('Error: $error');
}
}
Dart
๋ณต์ฌ
dio ์ฃผ์ ๋ฉ์๋
๋ฉ์๋
์ฃผ์ ๋ฉ์๋ | ์ค๋ช
|
dio.get(url, {options, cancelToken, onReceiveProgress}) | GET ์์ฒญ์ ์ํํฉ๋๋ค. |
dio.post(url, data, {options, cancelToken, onSendProgress, onReceiveProgress}) | POST ์์ฒญ์ ์ํํฉ๋๋ค. |
dio.put(url, data, {options, cancelToken, onSendProgress, onReceiveProgress}) | PUT ์์ฒญ์ ์ํํฉ๋๋ค. |
dio.delete(url, {data, options, cancelToken}) | DELETE ์์ฒญ์ ์ํํฉ๋๋ค. |
๋ฉ์๋ ์ธ์(parameters)
โข
data: POST ๋ฐ PUT ์์ฒญ์์ ์ ์กํ ๋ฐ์ดํฐ๋ฅผ ์ง์ ํฉ๋๋ค.
โข
options: ์์ฒญ์ ๋ํ ๋ค์ํ ์ค์ ์ ํฌํจํ๋ ์ต์
๊ฐ์ฒด์
๋๋ค.
โข
cancelToken: ์์ฒญ์ ์ทจ์ํ ๋ ์ฌ์ฉ๋๋ ํ ํฐ์
๋๋ค.
โข
onSendProgress ๋ฐ onReceiveProgress: ์
๋ก๋ ๋ฐ ๋ค์ด๋ก๋ ์งํ ์ํฉ์ ์ถ์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ฝ๋ฐฑ ํจ์์
๋๋ค.
์์ฒญ ๋ฉ์๋ ๋ณ ์์์ฝ๋
โข
get()
โข
post()
โข
put()
โข
delete()
get()
import 'package:dio/dio.dart';
void fetchData() async {
Dio dio = Dio();
try {
Response response = await dio.get('https://api.example.com/data');
print(response.data);
} catch (error) {
print('Error: $error');
}
}
Dart
๋ณต์ฌ
post()
import 'package:dio/dio.dart';
void postData() async {
Dio dio = Dio();
Map<String, dynamic> data = {
'username': 'john_doe',
'email': 'john@example.com',
};
try {
Response response = await dio.post('https://api.example.com/users', data: data);
print(response.data);
} catch (error) {
print('Error: $error');
}
}
Dart
๋ณต์ฌ
put()
import 'package:dio/dio.dart';
void updateData() async {
Dio dio = Dio();
Map<String, dynamic> data = {
'username': 'john_doe_updated',
'email': 'john@example.com',
};
try {
Response response = await dio.put('https://api.example.com/users/1', data: data);
print(response.data);
} catch (error) {
print('Error: $error');
}
}
Dart
๋ณต์ฌ
delete()
import 'package:dio/dio.dart';
void deleteData() async {
Dio dio = Dio();
try {
Response response = await dio.delete('https://api.example.com/users/1');
print(response.data);
} catch (error) {
print('Error: $error');
}
}
Dart
๋ณต์ฌ