Je suis nouveau dans le monde de l'ExtrOfit2, j'ai actuellement un problème pour obtenir une erreur d'erreur de Voici mon code d'exemple: p> Onnext code>.
public void onNext(Response<LoginResponse> value) {
ResponseBody responseBody = value.errorBody();
String sam = responseBody.toString();
}
3 Réponses :
Vous pouvez essayer: ou p>
Les carrosseries d'erreur de la rénovation sont de type OKHTTP3 Il existe différentes façons de pouvoir obtenir le contenu. Vous pouvez l'obtenir dans Je suppose un moyen facile d'utiliser Notez que ces méthodes lisent généralement la réponse d'un tampon, ce qui signifie que si je me rappelle correctement, appelez à nouveau Après avoir eu le contenu, si vous le souhaitez comme un objet. Depuis votre modèle de données, vous devrez le désérialiser manuellement. Il existe de nombreuses façons de le faire et il est facile de trouver sur le Web, mais pour des raisons de complétude, voici un moyen de le faire avec (ici de réponse de réponse code>. Cette classe est abstraite et ses implémentations définissent différentes manières que le contenu est représenté en interne.
octets code>, en tant que chaîne, ou même obtenir un
INPUTStream code> pour celui-ci - vérifiez-les
string () < / Code>: p>
chaîne () code > ne vous donnerait plus le contenu de la réponse. En particulier,
chaîne () code> lit également tout le corps en mémoire, ce qui peut provoquer une exception hors mémoire. P>
gson code>: p>
mypojo code> serait votre classe d'erreur représentant l'erreur) em> p> p> p>
Vous ne pouvez pas obtenir d'erreurs sans code d'erreur HTTP. Utilisez SMT comme ceci:
if (!value.isSuccessful && value.errorBody() != null) { val errorBodyText = value.errorBody()?.string()?:"" val errorResponse = Gson().fromJson<ErrorObject>(errorBodyText, ErrorObject::class.java) }
Github.com/square/retrofit/issues/1218#issuecomment-14988589 6 < / a>