Donc, Retrofit 2.0.0 a été publié récemment et il n’ya pas vraiment d’exemples mis à jour sur son utilisation, mais je tente de l’implémenter pour un appel d’API de base. Je reçois un
Java.lang.IllegalArgumentException: Unable to create converter for class`
causé par
Caused by: Java.lang.IllegalArgumentException: Could not locate converter for class orbyt.app.dataclass. Tried:
* retrofit.OkHttpBodyConverterFactory
En essayant de faire l'appel api.
Je faisais face au même problème. Je l'ai corrigé en ajoutant:
compile 'com.squareup.retrofit2:converter-gson:<latest-version>'
à mon build.gradle
Puis spécifiez le convertisseur lors de la création de mon instance Retrofit.
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
Dans Retrofit 2.0, Converter n'est pas inclus dans le package. Lorsque vous utilisez Retrofit 2.0, assurez-vous de suivre le nouveau modèle d'URL.
URL de base: se termine toujours par/
@ Url: NE PAS commencer par/
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
Pour plus d’informations sur la version 2.0, suivez ce lien Retrofit 2.0: La plus grande mise à jour
Et aussi mettre à jour build.gradle.
Changer la version de rattrapage en conséquence
Pour moi, la dépendance était déjà là
compile 'com.squareup.retrofit2:retrofit:2.0.2'
Pour gson 2.0.2 j'ai changé
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
Puis ajouter
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
Pour Retrofit V2, ajoutez les référentiels suivants -
compile 'com.squareup.retrofit2:retrofit:2.0.0'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.0'
Maintenant, utilisez le code ci-dessous -
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(API_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
J'espère que ça va aider :)
Dans la dernière version 2.0, vous devez importer la dernière version:
compile 'com.squareup.retrofit2:retrofit:2.0.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0'
Soyez prudent appelez baseUrl()
, à la v2.0, cela devrait être fin de "/", et à la méthode, vous ne commenceriez pas par url avec "/"
@POST("classes/info")
Call<ContactBean> insertInfo(@Body ContactBean bean);
Et vous pouvez voir Retrofit pour obtenir plus d'informations! J'espère vous aider!
Dans mon cas (Kotlin avec coroutines) j'ai reçu l'exception:
Impossible de créer un convertisseur pour retrofit2.Call
pour la méthode Queries.exportPdf.
Causé par: Java.lang.IllegalArgumentException: impossible de localiser le convertisseur ResponseBody pour retrofit2.Call
Un problème était dans une demande:
@FormUrlEncoded
@Streaming
@POST("export-pdf/")
suspend fun exportPdf(
@Field("token") token: String
): Call<ResponseBody>
Suppression de suspend
de la définition et des exceptions disparues.