CodeBlanks Logo Icon CodeBlanks

dio

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

main.dart
void main() {
  // dio import ekle; BaseOptions ile baseUrl ayarla; baseUrl yazdır
}

Örnek çözüm

main.dart
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

Soru
var dio = ____();
Cevap
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).

İleri seviye bölümündeki tüm dersler