L'API de repos avec qui je travaille possède des codes personnalisés et des messages envoyés de serveur en fonction de l'état, je voudrais implémenter un rachat Exemple de réponse de réussite reçue du serveur: strong> p> personnalisé
Succès code> Méthode uniquement si le code d'état était 0.
{
"code":"301",
"message":"wrong_password",
"data": {
"actual_data":"will_be_null",
"no_need_to_construct_objects","from_data"
}
}
5 Réponses :
Cela aura au moins vous aider à démarrer. Vous pouvez essentiellement créer votre propre rappel personnalisé, puis gérer le succès. Regardez ce qui a été envoyé et faites ce que vous devez.
public class CustomCallback implements Callback { @Override public void success(Object o, Response response) { //Check for success //if( Success ) //callback.success(o, response); //else //Check for error //callback.failure(error); } }
Vous pouvez le faire rapidement en effectuant une classe abstraite qui implémente le rappel et déclarer vos propres méthodes de réussite et de défaillance abstraites. La classe Abstract gérera les méthodes de rappel standard de Retrofit, interprétera la réponse et appelera les méthodes abstraites en conséquence.
Je pense qu'une autre approche possible de ceci consiste à remplacer l'interface client de rénovation pour créer votre propre objet de réponse. P>
Dans votre cas, vous pouvez avoir une classe qui mappe votre réponse JSON:
class CustomResponse { String code; String message; Data data; static class Data { String actualData; String needToContructObjects; String noNeedToContructObjects; } }
Créer une réponse de réponse personnaliséeConverter comme ceci:
Comment cette utilisation avec modernité
C'est une meilleure idée de mettre en œuvre un rappel personnalisé. Vous pouvez un exemple à ce sujet ci-dessous.
void yourMethod(DefaultRequestCallback<YourResponseBean> callback);
En réalité, ReleCit fournit un moyen de construire votre propre gestionnaire d'erreur personnalisé!
Pourriez-vous me donner des pointeurs ou où regarder un échantillon?
Square.github.io/retrofit "Manipulation de l'erreur personnalisée"
C'est pour les codes de statut, ce que je recherche est à l'intérieur de la réponse, http 200 est renvoyé, mais à l'intérieur des données de réponse, il y a les erreurs / messages ou aucun.
Il obtient toute la réponse et les gère en conséquence! Si votre réponse contient plus de données, vous pouvez l'utiliser à votre manière! Ce n'est pas seulement pour le code de statut!
Je suis à peu près sûr que vous vous trompez, il ne sera même pas appelé car si le résultat est HTTP 200 Restrofit appellera
Succès () code> et il n'y a donc pas d'objet rénovitError ni
échec () code> appels.
Si tel est le cas, désolé de vous avoir confiné!
Avez-vous trouvé un bon moyen de faire cela? J'ai aussi le même problème avec toi
J'ai le même problème ?? Est-ce vous avez trouvé quelque chose??