Pourquoi utiliser Retrofit quand nous avons OkHttp

avec OkHttp nous pouvons faire la requête HTTP puis obtenir la réponse du serveur

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

alors avec Gson lib, convertissez la réponse en object dont nous avons besoin.

c’est de Square / OkHttp doc:

Son API demande / réponse est conçue avec des constructeurs fluides et une immuabilité. Il prend en charge les appels de blocage synchrones et les appels asynchrones avec des rappels

Je lis à partir de stackOverFlow

Retrofit utilise automatiquement OkHTTP si disponible

.

Donc, ma question est de savoir ce qu’est exactement la rénovation pour

Qu’est-ce que Retrofit peut faire que OkHttp ne peut pas ?!

Je pense que OkHttp et Gson résolvent le problème de l’API de demande, alors quel problème Retrofit résout pour nous?

avec OkHttp on peut faire la requête HTTP puis obtenir la réponse du serveur … alors avec Gson lib, on convertit la réponse en object dont on a besoin

Notez que dans votre extrait de code, vous avez ignoré deux étapes notables: générer l’URL et parsingr le JSON en utilisant Gson.

Donc, ma question est de savoir ce qu’est exactement la rénovation pour

Il sert à générer l’URL (à l’aide du code généré par type lié à votre API REST spécifique) et à parsingr le JSON à l’aide de Gson. En d’autres termes, il fait ce que vous avez ignoré dans votre extrait de code.

De même, pour certains types d’opérations REST (par exemple, POST), il est utile de rassembler les éléments à envoyer (par exemple, générer le formulaire codé).

Par définition, vous n’avez pas besoin d’utiliser Retrofit. Retrofit est un code informatique, écrit par des programmeurs informatiques. Quelqu’un d’autre pourrait écrire du code pour faire ce que fait Retrofit.

pourquoi Retrofit utilise OkHttp

La mise à niveau doit effectuer des opérations HTTP. Il utilise OkHttp là où il est disponible, pour tout ce que OkHttp fournit: support HTTP / 2 et SPDY, intercepteurs enfichables, etc.

Vous devez utiliser la mise à niveau si vous essayez de mapper votre API de serveur dans votre application (sauvegarde de type). Retrofit n’est qu’un adaptateur API recouvrant okHTTP.

Si vous souhaitez taper safe et modulariser le code d’interaction avec votre API, utilisez retrofit. En dehors de cela, les performances sous-jacentes, les demandes par défaut, etc. de okHTTP et Retrofit sont les mêmes.

Je recommanderais également d’écouter ce podcast de Jesse Wilson (développeur des principaux clients HTTP Android), où il parle en détail de l’histoire du développement du client HTTP Apache, HTTPURLConnection, okHTTP et Retrofit.

Retrofit est un client REST pour Android et Java par Square. Il est relativement facile de récupérer et de télécharger des données JSON (ou d’autres données structurées) via un service Web basé sur REST. Dans Retrofit, vous configurez le convertisseur utilisé pour la sérialisation des données. Généralement, pour JSON, vous utilisez GSon, mais vous pouvez append des convertisseurs personnalisés pour traiter XML ou d’autres protocoles. Retrofit utilise la bibliothèque OkHttp pour les requêtes HTTP. Vous devriez utiliser la conversion sur okhttp pour sa facilité, pour ses fonctionnalités.

Le problème résolu par Retrofit est le suivant: Les codes de OKHttp pour obtenir un object depuis un serveur distant sont verbeux.