dengan OkHttp kita dapat membuat request HTTP kemudian mendapatkan respon dari server
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
Response response = client.newCall(request).execute();
kemudian dengan Gson lib convert respon ke objek yang kita butuhkan.
ini dari dokumen Square / OkHttp:
API permintaan / tanggapannya dirancang dengan pembuat yang lancar dan kekekalan. Ini mendukung panggilan pemblokiran sinkron dan panggilan asinkron dengan callback
Saya membaca dari stackOverFlow
Retrofit menggunakan OkHTTP secara otomatis jika tersedia
.
Jadi pertanyaan saya adalah untuk apa Retrofit sebenarnya?
Retrofit apa yang bisa melakukan itu OkHttp tidak bisa ?!
Saya pikir OkHttp dan Gson menyelesaikan masalah API permintaan, jadi masalah apa yang dipecahkan oleh Retrofit untuk kita?
Call
pola OkHttp, pencegat OkHttp, penyematan sertifikat, dll.Jawaban:
Perhatikan bahwa dalam cuplikan kode, Anda melewatkan dua langkah penting: membuat URL dan benar-benar mengurai JSON menggunakan Gson.
Ini untuk menghasilkan URL (menggunakan kode yang dibuat berdasarkan tipe yang terkait dengan REST API spesifik Anda) dan benar-benar mengurai JSON menggunakan Gson. Dengan kata lain, ia melakukan apa yang Anda lewati di cuplikan kode Anda.
Selain itu, untuk jenis operasi REST tertentu (misalnya, POST), ada baiknya sedikit menyusun apa yang harus dikirim (misalnya, menghasilkan formulir yang dikodekan).
Menurut definisi, Anda tidak perlu menggunakan Retrofit. Retrofit adalah kode komputer, yang ditulis oleh pemrogram komputer. Orang lain dapat menulis kode untuk melakukan apa yang dilakukan Retrofit.
Retrofit perlu melakukan operasi HTTP. Ia menggunakan OkHttp jika tersedia, untuk semua yang disediakan OkHttp: dukungan HTTP / 2 dan SPDY, pencegat yang dapat dicolokkan, dll.
sumber
Anda harus menggunakan retrofit jika Anda mencoba memetakan API server Anda di dalam aplikasi Anda (pengamanan tipe). Retrofit hanyalah adaptor API yang dibungkus okHTTP.
Jika Anda ingin mengetik safe dan memodulisasi kode interaksi dengan API Anda, gunakan retrofit. Selain itu, kinerja yang mendasari, permintaan default, dll dari okHTTP dan Retrofit adalah sama.
Juga saya akan merekomendasikan mendengarkan podcast ini dari Jesse Wilson (pengembang klien HTTP android utama), di mana dia berbicara secara mendalam tentang sejarah pengembangan klien HTTP Apache, HTTPURLConnection, okHTTP dan Retrofit.
sumber
Retrofit vs. OkHttp Alasannya sederhana : OkHttp adalah klien HTTP / SPDY murni yang bertanggung jawab atas semua operasi jaringan tingkat rendah, caching, manipulasi permintaan dan respons, dan banyak lagi. Sebaliknya, Retrofit adalah abstraksi REST tingkat tinggi yang dibangun di atas OkHttp. Retrofit 2 sangat digabungkan dengan OkHttp dan memanfaatkannya secara intensif.
Fungsi OkHttp: Penyatuan koneksi, gzipping, caching, pemulihan dari masalah jaringan, sinkronisasi, dan panggilan asinkron, pengalihan, percobaan ulang… dan seterusnya.
Fungsi Retrofit: manipulasi URL, permintaan, pemuatan, caching, threading, sinkronisasi ... Memungkinkan sinkronisasi dan panggilan asinkron.
sumber
Retrofit adalah Klien REST untuk Android dan Java oleh Square. Itu membuatnya relatif mudah untuk mengambil dan mengunggah JSON (atau data terstruktur lainnya) melalui Webservice berbasis REST. Di Retrofit, Anda mengonfigurasi konverter mana yang digunakan untuk serialisasi data. Biasanya untuk JSON, Anda menggunakan GSon, tetapi Anda dapat menambahkan konverter khusus untuk memproses XML atau protokol lain. Retrofit menggunakan pustaka OkHttp untuk permintaan HTTP. Anda harus menggunakan retrofit di atas okhttp untuk kemudahannya, untuk fitur-fiturnya.
sumber