Flutter HTTP paketi, Flutter uygulamalarında kullanılabilecek en temel paketlerden biridir. HTTP paketiyle birlikte API uzantılarına istek atabilir veya kendi kurduğunuz sunucunun içerisine CRUD işlemleri yapabilirsiniz. HTTP paketi uygulamanızın dış dünyayla olan ilişkisini güçlendirir. 🙂 Kullanmak için Android’te Manifest içerisinde INTERNET PERMISSION isterken, iOS tarafında izin istemenize gerek yoktur.

WorldClockAPI üzerinden HTTP istekleri nasıl gönderilir göstermeye çalışacağım.

Flutter HTTP post and get
Flutter HTTP post & get requests
flutter: post Response: {"$id":"1","message":"The requested resource does not support http method 'POST'."}

flutter: get Response: {"$id":"1","currentDateTime":"2021-01-24T05:05-05:00","utcOffset":"-05:00:00","isDayLightSavingsTime":false,"dayOfTheWeek":"Sunday","timeZoneName":"Eastern Standard Time","currentFileTime":132559383359482443,"ordinalDate":"2021-24","serviceResponse":null}

Gördüğünüz üzere WorldClockAPI Post isteğini kabul etmediği için bir mesaj döndürdü. Get isteğini kabul ettiği için de istediğimiz veriyi döndürdü. Await ve async olmadan yaptığımız bu iki isteği bir de async kullanarak yapalım.

Flutter HTTP Async
Flutter HTTP Async

Basit bir HTTP isteği nasıl yapılır gördük. Peki Response içerisinde ne tür veriler bize döndürülüyor hiç düşündünüz mü? JSON içeriğinin uzunluğu olan Content Length, başlıkları aktarmak için Headers, döndürülen verinin hangi kodla döndürüldüğünü anlamak için Status Code gibi parametreleri içerir. Bilmiyorsanız buyrun: HTTP Status Kodları ne anlama gelir?

HTTP ile çoklu istek atmak

HTTP istekleri response aldıktan sonra kendi kendine kapanır. response.persistentConnection yazarak bakabilirsiniz buna. Bazı durumlarda açtığınız bağlantı kanallarının bir durum gerçekleşene kadar açık kalması gerekebilir. Persistent bağlantıyı sağlamak için HTTP kütüphanesinden http.Client() objesinden faydalanıyoruz.

Flutter HTTP persistent connection
Flutter HTTP Persistent Connection


HTTP ile yapılabilecek diğer şeyler

HTTP sınıfıyla beraber POST, GET, DELETE, PUT, HEAD, PATCH gibi birçok işlem yapabilirsiniz. Kendi oluşturacağınız API arayüzleriyle beraber bu istek tiplerini amaçlarınıza uygun şekilde kullanabilirsiniz. Dart programlama diliye beraber oluşturacağınız bir API servisini Heroku üzerinde rahatlıkla deploy edebilirsiniz. Çok yakında bu konu hakkında bir yazı paylaşacağım. O zamana dek takipte kalın. 🙂


Okuyucuya Not

Merhaba okuyucu! Blogum son zamanlarda yüksek trafik almaya başladı ve bu durumdan memnunum fakat aynı zamanda siz ziyaretçileri tatmin edememekten endişeliyim. 🙂 Eğer yazılarım ile ilgili bir tavsiyeniz olursa mail adresimden bana ulaşabilir veya Twitter üzerinden direct message gönderebilirsiniz. Github’ta örnek olarak yaptığım projelere göz atmak isterseniz de bu linki kullanabilirsiniz. Umarım bu ziyaretinizle size bir şeyler katabilmişimdir.

Sağlıcakla kalın!

Tags: