J'essaie de faire un appel de retrofit et je reçois MalformedJsonException.MalformedJsonException sur Retrofit et Gson
Ceci est mon appel:
String idFoto = "1ead0a1f-bbc4-46bd-901c-7988c0e6c68b";
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Global.URL_BASE)
.addConverterFactory(GsonConverterFactory.create())
.build();
FotosAPI service = retrofit.create(FotosAPI.class);
Call<String> obtenerFotoCall = service.getFoto(Global.getToken(), idFoto);
Ceci est mon interface:
public interface FotosAPI {
@GET(Global.URL_FOTO + "{id}")
Call<String> getFoto(@Header("Authorization") String token, @Path("id") String id);
}
Le enqueue d'appel entre méthode onFailure, et l'erreur est « com.google.gson.stream.MalformedJsonException: Utilisez JsonReader.setLenient (true) pour accepter JSON mal formé à la ligne 1 colonne 2 chemin $ ".
Je fis les changements à mettre en indulgente comme ceci:
Gson gson = new GsonBuilder().setLenient().create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Global.URL_BASE)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
Ensuite, j'ai une autre erreur: « com.google.gson.stream.MalformedJsonException: Valeur attendue à la ligne 1 colonne 1 chemin $ »
Je pense que l'erreur est peut-être dans la conversion de Gson de la valeur de chaîne idFoto, mais je ne sais pas ce qui ne va pas.
Quelqu'un peut-il m'aider s'il vous plaît?
Merci les gars!
Vous devriez nécessaire 'ToStringConverterFactory' parce que je pense que votre réponse est dans 'String' donc pas besoin de convertir dans' GsonConverterFactory' –
pouvez-vous voir à quoi ressemble la réponse brute de JSON? – MidasLefko
L'appel brut ressemble à ceci: Request {method = GET, url = http: //10.0.2.2: 8080/DGCWS/rest/photo/1ead0a1f-bbc4-46bd-901c-7988c0e6c68b, tag = null}. Je ne sais pas où voir la réponse json brut lorsque le résultat de l'appel entre sur onFailure méthode – tornic