Retrofit Rehberi

İnanç Yılmaz
3 min readDec 8, 2020

Post İşlemi -Headers

Bu yazı Retrofit Rehberinin 4. yazısıdır. Daha önceki yazıları okumadıysanız;

POST

Post metodundan aslında bahsetmiştik. O zaman hadi örneklerle anlatmaya çalışalım. Önce api incelememizi yapalım.

https://jsonplaceholder.typicode.com/ ile çalışacağız. Bu sahte bir sunucudur. Yaptığımız işlemler sunucuyu aslında etkilemez ancak işlemin doğru yapılıp yapılamadığı ile ilgili geri bildirimi alabiliriz.

Post metodu ile göndermek istediğimiz sınıfı direkt “@Body ” annotation’ı ile gönderebiliriz. Önce Post metodunda sunucuya göndereceğimiz verinin class’ını hazırlayalım.

İlgili sunucunun rehberinde verilerin böyle gönderileceği bilgisine erişebilirsiniz. Aynı rehberde post işlemi sonucunda response olarak göndereceği yanıt:

Response class’ımızı ilgili guide’a göre oluşturduk. Interface’imizi hazırlayalım.

Interface’imiz içinde “@POST” annotation’u ile işlem türünü belirttik daha sonra isteğin gideceği endpoint’i belirttik. Post’un önemli özelliği olan verinin Body’de ve güvenli şekilde gideceğini biliyorduk. Bunu yapmak için “@Body” annotation’ı içine parametre olarak giden class’ımız koyup gelecek cevap için ApiCallResponse sınıfını koyduk.

ApiCallService objesi içinde fonksiyonumuzu koyduk.

Ve işemimizin sonucu 201 kodunu aldık.

HTTP 201 status durumu yanıt kodu, isteğin başarılı olduğunu ve bir kaynağın oluşturulduğunu gösterir. Yeni kaynak, bu yanıt geri gönderilmeden önce etkin bir şekilde yaratılır ve yeni kaynak mesajın gövdesinde döndürülür.

Status kodu çalıştığınız sunucuya göre değişebilir. Ve ilgili mesajın döndürüldüğünü log ekranlarımızda görelim.

Aslında her şey tamam ancak genel olarak aldığınız response, çalıştığınız uzak sunucu ile alakalıdır.

Post Form

Eğer sunucunuz sabit parametre almak için değilde sizin kendi anahtar-kilit parametrelerinizle çalışabiliyorsa burada devreye “FormUrlEncoded” dediğimiz bir yapı giriyor. Bu yapıyı isteğimizin en üstüne annotation olarak ekliyoruz. İşte bu kadar :) Hadi bir örnekle bakalım.

İlk örneğimizde ilgili annotation ekledikten sonra fonksiyon içine “@Field” annotation’ı ile custom key’lerimizi kendimiz belirledik. İkinci örnekte ise buna ek olarak sayısı çok fazla olan benzeri tipleri map’ler sayesinde ekleyebiliyoruz. :)

HEADERS

Headers ile işlemlerden aslında biraz bahsedip headerlar bir isteğin üst bilgileridir demiştik. Bir örnekle bu işlemde kendi headerlarımızı sunucuya göndereceğimize bakalım.

İki tane örnek ekledik bu örneklerde “@Headers” diyerek birden fazla header göndereceğimizi söyledik ve bunları String şeklinde şekildeki gibi custom belirtip doğrudan ilgili fonksiyonu çağırdık.

ikinci örnekte aynı header koyma işlemini bu sefer dynamic ve tek bir tane koyup bir header annotation’ı koyup bir header göndereceğimizi belirttik ve ekledik. Ancak birden fazla header’ı dynamic eklemek istiyorsanız, burada map’ler size yardımcı olacaktır.

Proje dosyası: https://github.com/inancyillmaz/Retrofit

O zaman 5. bölümle devam edelim :)

--

--