Зачем использовать Retrofit, когда у нас есть OkHttp

С OkHttp мы можем сделать HTTP-запрос, а затем получить ответ от сервера

OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .build(); Response response = client.newCall(request).execute(); 

Затем с помощью Gson lib конвертировать ответ на требуемый объект.

Это из Square / OkHttp doc:

Его API запросов / ответов разработан с плавными строителями и неизменностью. Он поддерживает как синхронные блокирующие вызовы, так и асинхронные вызовы с обратными вызовами

Я прочитал из stackOverFlow

При обновлении используется OkHTTP автоматически, если доступно

,

Итак, мой вопрос – это то, на что это точно переделана?

Что Модернизация может сделать, что OkHttp не может ?!

Я думаю, что OkHttp и Gson решают проблему API запросов, и какая проблема для нас решает?

Solutions Collecting From Web of "Зачем использовать Retrofit, когда у нас есть OkHttp"

С OkHttp мы можем сделать HTTP-запрос, затем получить ответ от сервера … затем с помощью Gson lib convert response to object нам нужно

Обратите внимание, что в фрагменте кода вы пропустили два важных шага: создание URL-адреса и фактическое разбор JSON с использованием Gson.

Итак, мой вопрос – это то, на что это точно переделана?

Он предназначен для создания URL-адреса (с использованием генерируемого кодом типа, привязанного к вашему конкретному API REST) ​​и фактически разбора JSON с использованием Gson. Другими словами, он выполняет то, что вы пропустили в своем фрагменте кода.

Кроме того, для определенных типов операций REST (например, POST), это помогает немного в сборке того, что нужно отправить (например, генерация закодированной формы).

По определению вам не нужно использовать «Дооснащение». Модернизация – это компьютерный код, написанный компьютерными программистами. Кто-то другой мог написать код, чтобы сделать то, что делает Retrofit.

Почему для переоснащения используется OkHttp

Для переоснащения необходимо выполнить операции HTTP. Он использует OkHttp, где доступно, для всего, что OkHttp обеспечивает: поддержку HTTP / 2 и SPDY, подключаемые перехватчики и т. Д.

Вы должны использовать модификацию, если вы пытаетесь сопоставить API-интерфейс вашего сервера в своем приложении (тип-безопасность). Retrofit – это всего лишь API-адаптер, завернутый поверх okHTTP.

Если вы хотите ввести безопасный и модульный код взаимодействия с вашим API, используйте модификацию. Кроме того, базовая производительность, запросы по умолчанию и т. Д. OkHTTP и Retrofit одинаковы.

Также я бы рекомендовал прослушать этот подкаст от Джесси Уилсона (разработчика основных HTTP-клиентов Android), где он подробно рассказывает об истории разработки HTTP-клиента Apache, HTTPURLConnection, okHTTP и Retrofit.

Retrofit – это клиент REST для Android и Java by Square. Это позволяет легко получить и загрузить JSON (или другие структурированные данные) через веб-службу на основе REST. В «Дооснащении» вы настраиваете, какой преобразователь используется для сериализации данных. Обычно для JSON вы используете GSon, но вы можете добавлять собственные преобразователи для обработки XML или других протоколов. Retrofit использует библиотеку OkHttp для HTTP-запросов. Для его удобства вы должны использовать модификацию поверх okhttp.