J'ai vérifié beaucoup de référence avant de poser réellement la question. Comme la plupart des gens, j'appelle un service web et obtenir le résultat ci-dessus. Mon problème est un peu plus précis, donc avant de demander moi d'ajouter mon code snippet
public static WebService getRestService(String newApiBaseUrl, String accessToken)
{
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
if (BuildConfig.DEBUG) {
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
httpClient.addInterceptor(logging);
}
Gson gson = new GsonBuilder()
.setLenient()
.create();
restBuilder = new Retrofit.Builder()
.baseUrl(newApiBaseUrl)
.client(httpClient.build())
.addConverterFactory(GsonConverterFactory.create(gson));
if (accessToken != null) {
AuthenticationInterceptor interceptor =
new AuthenticationInterceptor(accessToken);
if (!httpClient.interceptors().contains(interceptor)) {
httpClient.addInterceptor(interceptor);
restBuilder.client(httpClient.build());
}
}
retrofit = restBuilder.build();
return retrofit.create(WebService.class);
}
S'il vous plaît ignorer l'interprète. C'est ma classe de générateur de service à travers laquelle tous les services Web sont appelés. J'appelle une méthode POST qui me retournera une réponse simple.
Je peux voir ma réponse correcte dans "Android Monitor". Mais quand ça passe à travers JsonConverterFactory, ça me donne l'erreur ci-dessus. Une chose que je sais avec certitude, c'est que le service web renvoie une simple réponse textuelle car il n'y a rien de spécifique à retourner à l'application. Existe-t-il un moyen par lequel je peux convertir ma réponse de texte en classe. S'il vous plaît libérer cri si j'ai raté quelque chose.
également ajouter ma méthode d'interface
@Headers({
Constants.ApiHeader.CONTENT_TYPE_JSON
})
@POST("POST_URL/{number}")
Call<MyResponseModel> getActualProductLocation(@Header("access_token") String accessToken, @Path("number") String number, @Body List<MyRequestModel> body);
Mise à jour j'ai réussi à obtenir une partie de l'extrait de code du serveur. C'est ce que leur réponse ressemble à:
Response.status(200).entity("Response Success").build()
post 'MyResponseModel'. Très probablement, il n'est pas dans le bon format. – azizbekian
Il est vide car il n'y a pas de paire de valeur de clé retournée par le serveur (données JSON). Dois-je définir une variable de chaîne dans la classe? – Android
* Mon problème est plutôt plus précis * comment? Ces problèmes sont tous les mêmes: les données json ne sont pas ce que le convertisseur attendait. Il est possible que le convertisseur gson ne trouve pas une seule chaîne valide json (il est, cependant) –