dio
- Dart kursu
- İleri seviye
- Ders 35/83
- 5 dk
dio ile gelişmiş HTTP istemcisini öğrenirsin.
dio paketi
dio, http paketinden daha güçlü bir HTTP istemcisidir. Interceptor, timeout, otomatik JSON ayrıştırma, iptal edilebilir istekler ve FormData desteği sunar.
Kullanım: var dio = Dio(); ile bir istemci oluşturulur. var r = await dio.get('https://api.example.com/users');. r.data otomatik ayrıştırılmış JSON olur (Map veya List).
dio, büyük projelerde http'ye tercih edilir; çünkü interceptor zinciri ve gelişmiş yapılandırma sağlar.
BaseOptions ile yapılandırma
Dio(BaseOptions(baseUrl: 'https://api.example.com', connectTimeout: Duration(seconds: 5))) ile istemci yapılandırılır. baseUrl tüm isteklerin başına eklenir.
Böylece dio.get('/users') çağrısı https://api.example.com/users'a gider. Timeout'lar bağlantı ve okuma için ayrı ayrı ayarlanır.
Interceptor'lar dio.interceptors.add(...) ile eklenir; loglama, retry, auth token ekleme için kullanılır. Bu katmanlı yapı büyük projelerde güç sağlar.
Uygulama BaseOptions ile Dio yapılandır
import 'package:dio/dio.dart'; ekle. main içinde var dio = Dio(BaseOptions(baseUrl: 'https://api.example.com')); ekle. print(dio.options.baseUrl); ekle.
Başlangıç kodu
void main() {
// dio import ekle; BaseOptions ile baseUrl ayarla; baseUrl yazdır
}Örnek çözüm
import 'package:dio/dio.dart';
void main() {
var dio = Dio(BaseOptions(baseUrl: 'https://api.example.com'));
print(dio.options.baseUrl);
}Beklenen çıktı
https://api.example.com
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Dio istemcisi
var dio = ____();
var dio = Dio();
Açıklama: Dio() yeni bir dio istemcisi oluşturur.
2 dio özelliklerini eşleştir
| Kavram | Anlamı |
|---|---|
BaseOptions |
Yapılandırma |
interceptors |
İstek zinciri |
data |
Otomatik JSON |
cancelToken |
İstek iptalı |
3 dio neyi otomatik yapar?
- Yeni bir Isolate başlatır
- Veritabanı açar
- JSON gövdeyi ayrıştırır Doğru cevap
- UI çizer
Açıklama: dio JSON gövdeyi otomatik ayrıştırır (r.data Map/List olur).