Flutter dio Paketi İle HTTP İsteği Gönderme

Herkese merhaba, Flutter yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda dio paketini kullanarak HTTP isteği göndermeyi anlatacağım. Hadi başlayalım !
Table of Contents
Flutter, modern uygulama geliştirme platformlarından biridir ve mobil uygulamalar geliştirmek için oldukça popüler bir seçenek haline gelmiştir. Dio, Flutter’da popüler bir HTTP istemci kütüphanesidir ve özellikle API çağrıları yapmak için kullanılır. Dio, basit, güçlü ve esnek bir yapıya sahiptir ve uygulama geliştiricilerinin birçok farklı HTTP istemcisinden daha rahat bir şekilde kullanmasını sağlar.
Bu makalede, Dio paketi ile ilgili birkaç kod örneği paylaşacağım.
Dio Paketi Nedir?
Dio, Flutter’da HTTP istekleri yapmak için kullanılan bir pakettir. Dio, isteklerinizi asenkron bir şekilde yapmanıza ve JSON, FormData, URL-encoded gibi farklı tiplerde veri göndermenize olanak tanır. Ayrıca, Dio, istekleri istenilen şekilde özelleştirmenizi ve hata durumlarına uygun bir şekilde yönetmenizi sağlar.
Dio Paketini Kurmak
Dio paketini kullanmak için öncelikle projenize eklemeniz gerekiyor. Bunun için pubspec.yaml dosyanızı açın ve aşağıdaki satırı ekleyin:
dependencies:
dio: ^4.0.0
Daha sonra, terminalinizi açın ve aşağıdaki komutu çalıştırın:
flutter pub get
Bu, projenize Dio paketini ekleyecektir. Artık Dio paketini kullanmaya hazırsınız.
Dio Paketini Kullanmak
Dio paketini kullanmak oldukça basittir. İlk olarak, Dio paketini projenize dahil etmelisiniz. Bunu aşağıdaki gibi yapabilirsiniz:
import 'package:dio/dio.dart';
Daha sonra, Dio istemcisini oluşturmak için aşağıdaki gibi bir kod bloğu kullanabilirsiniz:
var dio = Dio();
Bu, Dio istemcisini oluşturur ve varsayılan ayarlarla yapılandırır. Varsayılan olarak, Dio, istekleri JSON formatında gönderir ve JSON formatında yanıtlar bekler.
İstek yapmak için, Dio istemcisini kullanarak aşağıdaki gibi bir kod bloğu yazabilirsiniz:
try {
var response = await dio.get('https://jsonplaceholder.typicode.com/todos/1');
print(response.data);
} catch (e) {
print(e);
}
Bu kod bloğu, https://jsonplaceholder.typicode.com/todos/1 adresine bir GET isteği yapar ve yanıtı konsola yazdırır. Eğer bir hata oluşursa, hatayı konsola yazdırır.
Dio Paketi ile POST İsteği Yapmak
Dio paketi ile POST isteği yapmak oldukça kolaydır. Aşağıdaki örnekte, Dio paketini kullanarak bir POST isteği nasıl yapılacağına dair bir örnek verilmiştir:
try {
var response = await dio.post('https://jsonplaceholder.typicode.com/posts', data: {
'title': 'foo',
'body': 'bar',
'userId': 1,
});
print(response.data);
} catch (e) {
print(e);
}
Bu kod bloğu, https://jsonplaceholder.typicode.com/posts adresine bir POST isteği yapar ve yanıtı konsola yazdırır. Veriler, data parametresi aracılığıyla gönderilir.
Dio Paketi ile İstekleri İzlemek
Dio paketi, istekleri izlemek için de birçok özellik sunar. Aşağıdaki örnekte, bir isteği izleme için bir Interceptor kullanılmıştır:
<pre class="wp-block-syntaxhighlighter-code">class LoggingInterceptor extends Interceptor {
@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
print('--> ${options.method} ${options.path}');
print('Headers:');
options.headers.forEach((key, value) => print('$key: $value'));
if (options.data != null) {
print('Body: ${options.data}');
}
print('--> END ${options.method}');
super.onRequest(options, handler);
}
@override
void onResponse(Response response, ResponseInterceptorHandler handler) {
print('<-- ${response.statusCode} ${response.requestOptions.method} ${response.requestOptions.path}');
print('Headers:');
response.headers.forEach((key, value) => print('$key: $value'));
if (response.data != null) {
print('Body: ${response.data}');
}
print('<-- END HTTP');
super.onResponse(response, handler);
}
@override
void onError(DioError err, ErrorInterceptorHandler handler) {
print('<-- ${err.response?.statusCode} ${err.requestOptions.method} ${err.requestOptions.path}');
print('${err.message}');
print('<-- END HTTP');
super.onError(err, handler);
}
}
var dio = Dio();
dio.interceptors.add(LoggingInterceptor());</pre>
Bu kod bloğu, isteklerin ve yanıtların izlenmesi için bir Interceptor sınıfı tanımlar ve dio.interceptors.add() yöntemi aracılığıyla istemciye ekler. Bu Interceptor, her istek ve yanıt için log çıktısı üretir ve konsola yazdırır.
Sonuç
Dio paketi, Flutter’da HTTP istekleri yapmak için kullanılan popüler bir pakettir. Dio, asenkron istekleri yapmak, JSON, FormData ve URL-encoded veri türleri göndermek gibi birçok özellik sunar. Ayrıca, Interceptor’lar aracılığıyla istekleri izlemek ve hata durumlarını yönetmek de mümkündür. Bu makalede, Dio paketi ile ilgili birkaç kod örneği paylaştım. Bu örnekler, Dio paketinin ne kadar kullanışlı ve güçlü olduğunu gösteriyor.
Evet dio paketini kullanarak HTTP isteği gönderme bu şekilde olmakta. Tüm Flutter yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.