con OkHttp podemos hacer una solicitud HTTP y luego obtener una respuesta del servidor
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
Response response = client.newCall(request).execute();
luego con Gson lib convertir la respuesta al objeto que necesitamos.
esto es de Square / OkHttp doc:
Su API de solicitud / respuesta está diseñada con constructores fluidos e inmutabilidad. Admite llamadas de bloqueo síncronas y llamadas asíncronas con devoluciones de llamada
Leí de stackOverFlow
Retrofit utiliza OkHTTP automáticamente si está disponible
.
Entonces, mi pregunta es, ¿para qué es exactamente Retrofit?
¡¿Qué puede hacer Retrofit que OkHttp no pueda ?!
Creo que OkHttp y Gson resuelven el problema de la API de solicitud, entonces, ¿qué problema nos resuelve Retrofit?
Call
patrón, OkHttp interceptor, certificado fijando etcRespuestas:
Tenga en cuenta que en su fragmento de código, omitió dos pasos notables: generar la URL y analizar el JSON usando Gson.
Es para generar la URL (usando código generado con reconocimiento de tipos vinculado a su API REST específica) y realmente analizar el JSON usando Gson. En otras palabras, hace lo que omitió en su fragmento de código.
Además, para ciertos tipos de operaciones REST (por ejemplo, POST), ayuda un poco a ensamblar qué enviar (por ejemplo, generar el formulario codificado).
Por definición, no es necesario utilizar Retrofit. La modificación es un código de computadora, escrito por programadores de computadoras. Alguien más podría escribir código para hacer lo que hace Retrofit.
La actualización necesita realizar operaciones HTTP. Utiliza OkHttp donde esté disponible, para todo lo que OkHttp proporciona: compatibilidad con HTTP / 2 y SPDY, interceptores enchufables, etc.
fuente
Debería utilizar la modificación si está intentando mapear la API de su servidor dentro de su aplicación (protección de tipos). Retrofit es solo un adaptador API envuelto sobre okHTTP.
Si desea escribir seguro y modularizar el código de interacción con su API, use retrofit. Aparte de eso, el rendimiento subyacente, los valores predeterminados de solicitud, etc. de okHTTP y Retrofit son los mismos.
También recomendaría escuchar este podcast de Jesse Wilson (desarrollador de los principales clientes HTTP de Android), donde habla en profundidad de la historia del desarrollo del cliente HTTP Apache, HTTPURLConnection, okHTTP y Retrofit.
fuente
Retrofit vs. OkHttp La razón es simple : OkHttp es un cliente HTTP / SPDY puro responsable de cualquier operación de red de bajo nivel, almacenamiento en caché, manipulación de solicitudes y respuestas, y muchas más. Por el contrario, Retrofit es una abstracción REST de alto nivel construida sobre OkHttp. Retrofit 2 está fuertemente acoplado con OkHttp y hace un uso intensivo de él.
Funciones de OkHttp: agrupación de conexiones, gzipping, almacenamiento en caché, recuperaciones de problemas de red, sincronización y llamadas asincrónicas, redirecciones, reintentos ... y así sucesivamente.
Funciones de Retrofit: manipulación de URL, solicitud, carga, caché, subprocesamiento, sincronización ... Permite sincronizar y realizar llamadas asíncronas.
fuente
Retrofit es un cliente REST para Android y Java de Square. Hace que sea relativamente fácil recuperar y cargar JSON (u otros datos estructurados) a través de un servicio web basado en REST. En Retrofit, configura qué convertidor se utiliza para la serialización de datos. Normalmente, para JSON, utiliza GSon, pero puede agregar convertidores personalizados para procesar XML u otros protocolos. Retrofit usa la biblioteca OkHttp para solicitudes HTTP. Debería utilizar retrofit sobre okhttp por su facilidad, por sus características.
fuente